Перезапуск приложения linux с помощью респауна в inittab не работает
Сценарий:
У меня есть процесс, работающий на 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
, Это ожидание правильно?
2 ответа
Этот ответ приходит довольно поздно, но ваш уникальный идентификатор в строке, которую вы написали, составляет 5 символов. Максимальная длина идентификатора должна быть 4.