Bagaimana saya bisa memeriksa untuk melihat apakah suatu proses dihentikan dari baris perintah?


8

Saya memiliki pid dan saya hanya berhenti menggunakan program

kill -stop PID

Sekarang saya ingin melanjutkannya dengan melakukan

kill -cont PID

Tetapi hanya jika sudah dihentikan. Bagaimana saya memeriksa untuk melihat apakah itu berhenti atau berjalan?


Anda mengatakan program dalam judul, jadi maksud Anda nama atau maksud Anda PID seperti dalam contoh?
aurelien

Apakah Anda ingin melanjutkannya di latar depan (meraih terminal) atau di latar belakang?
Eric Towers

Jawaban:


8

Anda dapat memeriksa apakah proses dalam keadaan berhenti, Tapakah psoutput.

Anda dapat melakukan:

[ "$(ps -o state= -p PID)" = T ] && kill -CONT PID
  • [ "$(ps -o state= -p PID)" = T ]tes apakah output ps -o state= -p PIDadalah T, jika demikian kirim SIGCONTke proses. Ganti PID dengan ID proses yang sebenarnya dari proses tersebut.

5

Cara lain adalah

pid=1
status=`cat /proc/$pid/wchan`
if [ "$status" == "do_signal_stop" ] ; then
  echo "$pid sleeps: $status"
else
  echo "$pid does not sleep: $status"
fi

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.