LINUX.ORG.RU

Проверить запущен ли процесс


0

0

Возникла необходимость написать скрипт проверки процесса,если процесс не запущен то запускать. Это добавить в крон для автозапуска.

Но возникла проблема,при команде:

pkill -0 ./gs is06

выдает ошибку. При команде:

pkill -0 './gs is06'

echo $?

Выдает что процесс не запущен,хотя он работает.

Вот возник вопрос как проверить работает ли процесс по имени процесса,если он состоит из 2-х слов. PID при каждом запуске разный.

Система Debian. Нужно именно по имени,т.к. много процессов начинается с ./gs



Последнее исправление: Uragan4ik (всего исправлений: 3)

Uragan4ik> pkill -0 './gs is06'
pkill -0 -f './gs is06'

Читайте маны

sdio ★★★★★
()

>Проверить запущен ли процесс
if [ «$(pidof conky | tr » " «\012» | wc -l)" != «0» ]; then
бла-бла-бла
fi
как ещё один вариант %)

megabaks ★★★★
()
Ответ на: комментарий от megabaks

Слишком сложно.

[[ $(pidof conky) ]] || blah-blah

GotF ★★★★★
()
Ответ на: комментарий от ptah_alexs

Только тут надо осторожнее, если ps завершится с ошибкой, то grep ничего не найдёт и будет дублирующее срабатывание.

mky ★★★★★
()

живой пример crontab из интернетов

TUNCMD1='ssh -f -N -R 2222:10.11.12.13:22 username@99.88.77.66'

TUNCMD2='ssh -f -N -R 2080:10.11.12.14:80 username@99.88.77.66'

*/5 * * * * pgrep -f «$TUNCMD1» &>/dev/null || $TUNCMD1

*/5 * * * * pgrep -f «$TUNCMD2» &>/dev/null || $TUNCMD2

zolden ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.