Как проверить, остановлен ли процесс из командной строки?

У меня есть pid, и я просто остановил программу, используя

kill -stop PID

Теперь я хочу продолжить это, сделав

kill -cont PID

Но только если он уже остановлен. Как я могу проверить, остановлен ли он или запущен?

3 Solutions collect form web for “Как проверить, остановлен ли процесс из командной строки?”

Вы можете проверить, находится ли процесс в состоянии остановки, T – выход ps .

Ты можешь сделать:

 [ "$(ps -o state= -p PID)" = T ] && kill -CONT PID 
  • [ "$(ps -o state= -p PID)" = T ] проверяет, является ли вывод ps -o state= -p PID T , если это так посылает SIGCONT в процесс. Замените PID на фактический идентификатор процесса процесса.

Другой способ

 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 
 ps -e | grep | PROGRAM 

или

 while true; do kill program done wait 
  • UNIX-, BSD-, GNU-опции в команде ps для Linux. Откуда они?
  • Спецификация Solaris ps aux comand. Почему для grep необходимо использовать параметр ww?
  • Перечислите процессы суперпользователя
  • Проверьте процесс и убейте
  • Top и ps не показывают тот же результат процессора
  • Как определить, какая среда рабочего стола установлена ​​из оболочки?
  • Как я могу получить полный список процессов в Solaris без усеченных линий?
  • grep для конкретного процесса в ps, но не для самой команды grep
  • init: это пользовательский поток или поток ядра?
  • Просмотр полных команд в выводе ps
  • Получает ли этот диспетчер процесс зомби?
  • Linux и Unix - лучшая ОС в мире.