Как написать сценарий инициализации, который будет выполнять существующий сценарий запуска?

Я пытаюсь понять процесс инициализации .

У меня есть скрипт, который запускает 3 фоновых процесса (2 скрипта оболочки и приложение Java). Он отлично работает из командной строки.

Я хотел бы выполнить этот скрипт при запуске.

/etc/init.d/skeleton не имеет смысла для меня, потому что он искал один процесс, который казался. И большинство сценариев инициализации кажется настолько сложным, что я теряюсь.

Все, что я действительно хочу сделать, это:

#!/bin/bash
/opt/myapp/bin/my_start_script

Если бы это только случилось при запуске, я был бы очень счастлив.

2
задан 26 October 2011 в 02:44

2 ответа

Вы можете добавить свою ссылку в приложение Startup Applications в Ubuntu, если хотите использовать графический интерфейс. Недостатком этого является то, что он будет выполняться только при входе в GUI (т. Е. Не для других пользователей и не при входе в среду Ubuntu Desktop).

Используя командную строку, вы можете запустить скрипт до загрузки Ubuntu Desktop.

Для этого сделайте ваш скрипт исполняемым, скопируйте его в /etc/init.d и создайте символическую ссылку на скрипт в /etc/rc2.d, если вы хотите, чтобы он выполнялся на многопользовательском уровне запуска по умолчанию (уровень запуска 2). Вам следует переименовать его с помощью буквы S, за которой следует порядок, в котором вы хотите его выполнить, в соответствии с другими ссылками там.

  1. Сделать исполняемый скрипт:

    sudo chmod u+x myscript.sh

  2. Скопировать его в /etc/init.d:

    sudo cp myscript /etc/init.d

  3. Создать символическую ссылку в rc2.d:

    cd /etc/rc2.d

    sudo ln -s /etc/init.d/myscript.sh

  4. Переименуйте его в соответствии со схемой именования:

    sudo mv myscript.sh S70myscript.sh

Для получения дополнительной информации см. Файлы README в /etc/init.d и /etc/rc2.d.

0
ответ дан 26 October 2011 в 02:44

Использование Upstart в качестве сценариев инициализации System V устарело и стало проще.

Просто поместите этот файл my_script.conf в / etc / init

# Start when pc starts up
start on runlevel [2345]
# Stop when pc shuts down 
stop on runlevel [016]

# Start Script 
exec my_start_script
# Stop Script 
pre-stop my_stop_script

Pre Stop будет содержать сценарий, содержащий код для уничтожения вашего 3-го процесса, и является необязательным, когда служба останавливается sigterm быть отправлено процессу my_start_script, но в зависимости от вашего скрипта он может уже завершиться.

Вы можете проверить свой новый сервис, запустив sudo service my_script start и sudo service my_script stop

0
ответ дан 26 October 2011 в 02:44

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

Похожие вопросы: