Запустить Perl-скрипт при запуске в Ubuntu - PullRequest
4 голосов
/ 15 июля 2011

У меня есть Perl-скрипт, который мне нужно запустить один раз при запуске с аргументом под моей учетной записью пользователя .

Так что, когда я загружаю систему, она должна выполнить такую ​​команду, какэто,

./path/to/script.pl start

Есть идеи?

Ответы [ 3 ]

7 голосов
/ 15 июля 2011

Вы можете использовать строку в вашем crontab (crontab -e)

Чтобы запустить команду при запуске:

редактировать / etc / crontab Добавьте следующую строку:

@ перезагрузить root perl ./path/to/script.pl start

^^^ Запускается от имени root. Измените «root» на «BlackCow», чтобы он работал как BlackCow

Или вы можете использовать upstart (добавьте файл .conf в / etc / init /). Вот копия и вставка из моих заметок:

Используйте upstart для запуска демона при перезагрузке / запуске

например. /etc/init/prestocab.conf:

#!upstart
description "node.js server"
author      "BlackCow"

start on (local-filesystems and net-device-up IFACE=eth0)
stop on shutdown

script
    export HOME="/root"

    exec sudo -u root /usr/local/bin/node /home/prestocab/prestocab.com/www/socket.io/server.js 2>&1 >> /var/log/prestocab.log
end script

Для использования:

start prestocab
stop prestocab
restart prestocab

# Возможно, вы захотите использовать какой-нибудь монитор процесса для перезапуска демона, если он выйдет из строя

3 голосов
/ 15 июля 2011

Зависит от того, что init вы используете, если ваша версия Ubuntu использует upstart

вы должны настроить соответствующие стартовые сценарии Upstart, если нет rc сценарии на основе вашего runlevel. Чек update-rc.d.

2 голосов
/ 16 июля 2011

В Ubuntu самый простой способ - добавить эту строку в файл /etc/rc.local (перед строкой exit 0, подставив username с вашим собственным именем пользователя):

su -c "./path/to/script.pl start" username &
...