Я написал Perl-скрипт, который будет служить демоном, поэтому я бы хотел, чтобы ОС (в моем случае, Ubuntu Linux) автоматически запускала мой Perl-скрипт после его загрузки.
Как я могу это сделать?
Я написал Perl-скрипт, который будет служить демоном, поэтому я бы хотел, чтобы ОС (в моем случае, Ubuntu Linux) автоматически запускала мой Perl-скрипт после его загрузки.
Как я могу это сделать?
Создайте оболочку для сценария оболочки
#!/bin/sh - script.sh
# your perl program goes here
/bin/perl /path/to/foobar.pl
Убедитесь, что вы дали разрешение на выполнение с помощью
chmod +x script.sh
и выполните следующее,
sudo update-rc.d script.sh defaults
Это будет запускать Perl-скрипт при каждом запуске.
Вещи немного изменились за последние 7 лет. В Ubuntu 16.04 путь к Perl другой. Кроме того, вам необходимо предоставить кучу информации о конфигурации в вашем скрипте /etc/init.d/foobar.sh:
#!/bin/sh foobar.sh
### BEGIN INIT INFO
# Provides: foobar
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: forbarsvr
# Description: foobar daemon for widget serving
### END INIT INFO
sudo -u foobarusr perl /path/to/foobar.pl &
Эта форма вызова perl позволяет вам работать как пользователь (предоставляя ограниченный домен безопасности), а не как root; для запуска с правами root удалите -u foobarusr
. Если вы работаете как пользователь без полномочий root, убедитесь, что у пользователя есть разрешения на все необходимые ресурсы, такие как сам скрипт perl.
Трейлинг &
запускает ваш Perl-скрипт как текущее (до завершения) задание; как у дэймона, если он не заканчивается по какой-либо причине.
Сделайте ваш исполняемый файл Foobar Launcher:
sudo chmod +x /etc/init.d/foobar.sh
Добавьте ваш скрипт в последовательность запуска:
sudo update-rc.d foobar.sh defaults
Обратите внимание, что путь к сценарию не указан.