Я новичок в мире сценариев инициализации и все еще новичок в BASH. В настоящее время я нахожусь в ситуации, когда я мог бы воспользоваться некоторыми советами.
Мы запускаем приложение, использующее JBOSS, и мне нужно иметь возможность обрабатывать его как демон, используя сценарий инициализации. Я впервые пишу сценарий инициализации, и я понимаю, что часто файлы .pid используются для отслеживания процесса с помощью сценария инициализации, однако мне интересно, действительно ли они нужны в моей ситуации.
Например, когда я использую функцию «стоп» своего сценария инициализации, я могу попросить его проверить файл.pid, чтобы получить идентификатор процесса, или я могу просто получить PID с помощью "checkproc".
Вот пример того, что я написал.
JBOSSPID=$(checkproc -v $JBOSS_PROCESS_NAME)
function _stop {
# Check if JBOSS is running..
if [ -z "$JBOSSPID" ]; then
echo "Service is not running.."
exit
fi
# Attempt to shutdown JBOSS gracefully..
echo "Stopping service.."
./stop_jboss.sh
# Loop until JBOSS PID no longer exists..
RUNNING=0
while [ "$RUNNING" == "0" ]
do
JBOSSPID=$(checkproc -v $JBOSS_PROCESS_NAME)
if [ "$JBOSSPID" == "" ]; then
RUNNING=1
fi
done
}
Я написал свои функции "start" и "status" для получения PID, подобного этому. Я протестировал его, и, похоже, он работает нормально, но я не знаю, есть ли что-то, что мне не хватает, что могло бы пойти не так без файла .pid. Есть ли у меня причины отказаться от этой логики и вместо этого использовать файл .pid?