Рейтинг:0

Задание Cron запускает приложение в домашнем каталоге

флаг mv

Я пытаюсь написать скрипт в качестве сторожевого таймера для сервера SA-MP. Он каждую минуту будет проверять, запущен ли сервер, и если нет, то сделает копию журнала сервера и запустит сервер. Работа cron, кажется, работает. Единственная проблема в том, что сервер почему-то создает журнал сервера в /home/pararera, а не в /home/pararera/haswell-samp, где находится exe-файл сервера.

Я предполагаю, что по какой-то причине приложение запускается в неправильном каталоге, и сервер не работает, потому что он не может прочитать файл server.cfg, который находится в home/pararera/haswell-samp. Если я вручную захожу в home/pararera/haswell-samp и набираю ./samp03svr, все работает как надо. Как я могу это исправить?

лог сервера создается в /home/pararera

PROCESS_COUNT=$(ps -fu pararera | grep samp03svr | grep -v grep | wc -l)
случай $PROCESS_COUNT в
0)
mv server_log.txt /logs/server_log.`date '+%m%d%y%H%M%S'`.txt
/home/pararera/haswell-samp/samp03svr &
;;
1) #ОК, программа уже запущена один раз
;;
*) #ОК, программа уже несколько раз
;;
эсак
Pararera avatar
флаг mv
@user68186 исправлено
флаг hr
Это ожидаемое поведение. Вы можете перейти в нужный каталог — либо в crontab, либо внутри вашего скрипта. Кроме того, рассмотрите возможность использования `pgrep -c` для подсчета процессов ex. `pgrep -cu pararera samp03svr`.
флаг au
Рабочий каталог для процесса не определяется тем, где находится выполняемый им исполняемый файл, он унаследован от родительского процесса (если он специально не установлен где-то еще). В случае пользовательских заданий cron это обычно домашняя папка пользователя. Вы не должны ожидать, что программы будут автоматически запускаться в каталоге, где находится исполняемый файл.
Pararera avatar
флаг mv
Спасибо. Я этого не знал.
Pararera avatar
флаг mv
`mv` не работает, когда cron выполняет скрипт. Если запускать вручную, то работает.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.