Здравствуйте!
Как можно проверить запущен ли процесс с именем, допустим "./gs01"?
И если он не запущен, запустить его...
Цитата: gibat92 от 05 Января 2010, 17:49Здравствуйте!
Как можно проверить запущен ли процесс с именем, допустим "./gs01"?
И если он не запущен, запустить его...
Можно так: Alt+F2 -> terminal -> ps -e
И смотрим запущеные процессы.
Или (вариант с гуем): Alt+F2 -> gnome-system-monitor -> Процессы
Цитата: gibat92 от 05 Января 2010, 17:49Здравствуйте!
Как можно проверить запущен ли процесс с именем, допустим "./gs01"?
И если он не запущен, запустить его...
ps aux |grep imya_processa
log
Спасибо, то что нужно!
а если сделать что-то типо такого:
if ps aux |grep имя_процесса
then
echo "процесс запущен"
else
_тут_запуск_процесса_
fi
будет ли работать? (:
Ну так попробуйте!

/rolleyes.gif\' class=\'bbc_emoticon\' alt=\':rolleyes:\' />
Цитата: gibat92 от 05 Января 2010, 22:28log
Спасибо, то что нужно!
а если сделать что-то типо такого:
if ps aux |grep имя_процесса
then
echo "процесс запущен"
else
_тут_запуск_процесса_
fi
будет ли работать? (:
Всегда будет идти по ветке true, поскольку как минимум будет выдавать процесс grep
Имя файла 1.sh
#!/bin/sh
if ps aux |grep "./gs gs01" |grep -v grep
then
echo "process successfuly"
sleep 600
./1.sh
else
echo "process has gone..."
cd /home/gamed; ./gs gs01 >/home/logs/game1.log &
sleep 180
cd /root
./1.sh
fi
echo "end"
Все прекрасно работает (:
Вот только интересует еще два вопроса:
1) как запустить этот файл (1.sh) в режиме бекграунда, ну чтобы при закрытии консоли, он продолжал работать... (консоль ssh)
2) как из процессов убирать "старые процессы" файла 1.sh? =>
Цитировать3111 tty2 S+ 0:00 /bin/sh ./1.sh
3116 tty2 S+ 0:00 /bin/sh ./1.sh
3121 tty2 S+ 0:00 /bin/sh ./1.sh
3126 tty2 S+ 0:00 /bin/sh ./1.sh
3131 tty2 S+ 0:00 /bin/sh ./1.sh
3219 tty3 R+ 0:00 ps -ax
если не выполнять в скрипте повторный запуск "./1.sh", то вместо него можно написать что-то в роде "reload"? (как именно сделать я хз =\)
Цитата: gibat92 от 06 Января 2010, 12:26Имя файла 1.sh#!/bin/sh
if ps aux |grep "./gs gs01" |grep -v grep
then
echo "process successfuly"
sleep 600
./1.sh
else
echo "process has gone..."
cd /home/gamed; ./gs gs01 >/home/logs/game1.log &
sleep 180
cd /root
./1.sh
fi
echo "end"
Все прекрасно работает (:
Вот только интересует еще два вопроса:
1) как запустить этот файл (1.sh) в режиме бекграунда, ну чтобы при закрытии консоли, он продолжал работать... (консоль ssh)
2) как из процессов убирать "старые процессы" файла 1.sh? =>
kill номер процесса
запуск в фоне
nohup ./1.sh &
Цитата: Vicpo от 06 Января 2010, 12:36kill номер процесса
запуск в фоне
nohup ./1.sh &
Убивать пару сотен(за день накопится) процессов через kill, не слишком охото

/smile.gif\' class=\'bbc_emoticon\' alt=\':)\' />Это какнибудь бы автоматизовать...
Цитата: gibat92 от 06 Января 2010, 12:57Убивать пару сотен(за день накопится) процессов через kill, не слишком охото
/smile.gif\' class=\'bbc_emoticon\' alt=\':)\' />Это какнибудь бы автоматизовать...
А на фига их стоько надо было запускать?
killall -9 ./1.sh
killall -9 sh
Цитата: Vicpo от 06 Января 2010, 13:07killall -9 sh
Особенно прикольно, если кто нибудь будет залогинен в системе в это время.

/smile.gif\' class=\'bbc_emoticon\' alt=\':)\' />
gibat92 - у меня чувство, что на самом деле тебе все это не нужно. XY Problem (http://www.perlmonks.org/index.pl?node_id=542341)