как я могу запустить свой собственный скрипт при каждой загрузке - PullRequest
3 голосов
/ 26 марта 2012

У меня вопрос, как я могу запускать свой собственный скрипт bash при каждом запуске Ubuntu. Предположим, у меня есть сценарий, который выполняет определенную работу. Теперь я хочу, чтобы он запускался автоматически во время запуска моей системы Ubuntu.

Ответы [ 4 ]

5 голосов
/ 26 марта 2012

Вы должны научиться использовать выскочку.Смотрите это .

1 голос
/ 26 марта 2012

В настоящее время системы Linux (включая Ubuntu) поддерживают 2 способа достижения этого: сценарии Upstart и SysV.Выскочка - это «новый» путь.

Создание сценариев SysV может быть достигнуто следующим образом:

update-rc.d <your script> defaults

Это создаст ссылки для запуска службы на уровнях выполнения 2345 и остановит службу на уровнях выполнения 016 и создаст соответствующий SysV-скрипты стиля внутри / etc / rc? .d /

Другим способом было бы написать выскочку. Upstart-задания расположены в / etc / init .Самый простой способ - скопировать существующее задание и попытаться изменить его для своего сценария.Вот объясненные выскочки .

0 голосов
/ 30 января 2014

Недавно я столкнулся с ситуацией, когда одно задание в идеале запускается с помощью upstart, а другое - rc.local.Хотя оба метода приведут в исполнение ваш скрипт, выскочка имеет больше смысла при демонизации скрипта во время запуска;С другой стороны, rc.local позволяет сценарию выполнять свой курс.

Например, если сценарий уже является процессом-демоном, например сервером, он может быть вызван rc.local, посколькуне оставайтесь на переднем плане и не блокируйте терминал.

Но если сам скрипт не демонизирован, выскочка даст ему возможность корректно запускаться и останавливаться при системных событиях.Это хорошо для запуска PHP-скрипта в фоновом режиме.Хотя вы могли бы использовать upstart для запуска, скажем, Apache httpd, процесс сразу же «закрывается» в глазах Upstart, что делает Upstart бессмысленным, поскольку он уже «завершен».

0 голосов
/ 26 марта 2012

Есть два варианта. Самый простой, отредактируйте /etc/rc.local и вызовите ваш скрипт оттуда. Другой вариант заключается в использовании выскочки. Посмотрите на /etc/init/hostname.conf. Вы можете использовать этот файл в качестве шаблона, скопировать его как /etc/init/yourscript.conf, адаптировать содержимое, и оно должно работать.

...