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

У меня есть 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 
  • Как фильтровать STAT с помощью ps?
  • Убивание процесса cron и предотвращение его перезапуска
  • Как распечатать имя процесса рядом с идентификационным номером процесса в файле?
  • Вычисление процессорного времени процесса в RHEL 5.3
  • Посмотрите, работает ли скрипт при использовании #! / Usr / bin / env
  • Вывод PS-файла в текстовый файл
  • Получить время начала процесса независимо от обновлений NTP
  • Когда начался процесс
  • Почему значение VSIZE в верхней части отличается от значения VSZ (размер виртуального набора) в ps?
  • Как убить весь процесс с заданным именем?
  • Получить список процессов с логическим пересечением селекторов?
  • Linux и Unix - лучшая ОС в мире.