Сценарий:
У меня есть процесс, работающий в Linux, который запускается в фоновом режиме скриптом, подключенным к /etc/init.d/
, который называется MyApp
, который представляет собой просто сценарий оболочки без .sh
. Ниже приведен мой сценарий сценария init.d
.
#!/bin/sh
PARAM=$1
case ${PARAM} in
start)
MyApp &
;;
stop)
killall -9 MyApp
;;
*)
echo "Usage: $0 {start|stop}" >&2
exit 1
;;
esac
Как видите, MyApp
запускается в фоновом режиме.
Цель и проблема:
Я хочу перезапустить MyApp
, когда он выйдет из строя. Я пытался узнать, как это делается. Похоже, мне нужно добавить запись в /etc/inittab
по разным ссылкам, которые я читал. Поэтому я добавил в /etc/inittab
следующую запись.
MyApp:12345:respawn:MyApp
Вопрос:
Выше, похоже, не работает, и как я могу заставить это работать правильно? Что не так, что я здесь делаю?
Примечание:
Я делаю killall -9 MyApp
и ожидаю его перезапуска из-за записи, которую я добавил в /etc/inittab
. Верно ли это ожидание?
case ${PARAM} in
start)
(while :; do MyApp ;done) &
;;
Этот ответ приходит довольно поздно, но ваш уникальный идентификатор в строке, которую вы написали, составляет 5 символов. Максимальная длина идентификатора должна быть 4.
@xDragonZ, это может быть ответ, несмотря на отсутствие описания.