У меня есть программа Erlang, которая работает в оболочке Erlang, и я хочу ее контролировать.
Вот что я хочу:
- Когда машина запускается, оболочка Erlang должна запускаться вместе с ней, а также программа, которая запускается в оболочке.
- Если оболочка Erlang по какой-либо причине дает сбой, она должна быть перезапущена.
- Вы должны иметь возможность вручную запускать / останавливать / перезапускать оболочку Erlang.
Пример:
/etc/init.d/foobar start
/etc/init.d/foobar stop
/etc/init.d/foobar restart
Я еще не начал с цели "перезагрузить сам, если сбой", застрял с легкой вещью, или это просто?
Что я сделал, так это:
Взял код скелета из /etc/init.d/skeleton и заменил PATH, DESC, NAME и т. Д. И т. Д ... Это работает, я могу сделать:
/etc/init.d/foobar start
Однако я не могу это остановить ... Дело в том, что я запускаю оболочку Erlang с помощью "erl", который представляет собой скрипт, который делает некоторые причудливые вещи, которые я не понимаю. Он создает очень длинное и сложное имя процесса. Это не просто "эрл", это как:
/ usr / lib / erlang / erts-5.7.4 / bin / beam.smp - -root / usr / lib / erlang -progname erl - -home / home / xxx - .... и некоторые другие больше.
Есть ли лучший способ сделать это?
ОС: Ubuntu 11.04