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?

hermancain
sumber
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.
heemayl
sumber
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
Hanya aku
sumber
-4
ps -e | grep | PROGRAM 

atau

while true;
do
kill program 
done 
wait 
Kemajuan Masters
sumber