Установить скрипт на автозапуск при загрузке Linux

Я использовал плагин Maven appassembler для генерации сценариев оболочки Linux вокруг приложения Java Spring "myapp".

Затем я получаю следующую структуру каталогов:

/home/myapp/platform/bin/myapp       <== Script that I start manually

Сценарий myapp имеет права "-rwxr-xr-x", а для владельца установлено значение "myapp:myapp", а сценарий настроен для запуска от имени пользователя "myapp" (устанавливается из настроек Maven при сборке).

Теперь из корня я выдал следующую команду:

$ sudo ln -s /home/myapp/platform/bin/myapp /etc/init.d/service_myapp

который создает символическую ссылку с правами "lrwxrwxrwx" и "root:root" как владелец и указывает на мой скрипт myapp. Я подумал, что этого будет достаточно для запуска этого скрипта при запуске. Однако это, кажется, не работает. Если я запускаю его вручную, как:

$ cd /etc/init.d/
$ ./service_myapp

затем мне предлагается ввести пароль перед его выполнением.

Может кто-нибудь объяснить, что здесь происходит и / или что я делаю не так?

Я также попробовал это:

$ cd /etc/init.d/
$ update-rc.d service_myapp defaults 20

но получает это:

update-rc.d: warning: /etc/init.d/service_myapp missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
 Adding system startup for /etc/init.d/service_myapp ...
   /etc/rc0.d/K20service_myapp -> ../init.d/service_myapp
update-rc.d: symlink: Permission denied

1 ответ

Вам будет предложено ввести пароль, потому что некоторые команды в сценарии требуют root, вероятно.

Кроме того, вы должны быть root при запуске update-rc.d:

sudo update-rc.d service_myapp defaults 20

Наконец, ваш скрипт должен быть в формате SysV и поддерживать start, stop, restart, force-reload, а также status команды.

Другие вопросы по тегам