Запускать автоматически программу при запуске под linux ubuntu [закрыто]
140
Мне нужно, чтобы программа запускалась каждый раз, когда я запускаю свой ubuntu linux. Поэтому мне нужно добавить его в список программ автозагрузки. Только одна проблема: мне нужно сделать это через терминал.
@Flexo Этого ответа нет ни в одной из предоставленных вами ссылок. +1 к этому вопросу и ответ
Francisco Valdez
2
Фактически, ответ здесь взят из первого из этих вопросов.
Wilson F
4
Для простого и портативного способа сделать это вы можете использовать Cron. Запустите, crontab -eчтобы отредактировать crontab вашего пользователя; добавить @reboot commandдля запуска commandпри каждой загрузке.
appas
2
Не знаю, дубликат это или нет, но это первое попадание в гугл ..
Скрипт теперь должен запускаться при загрузке. Обратите внимание, что этот метод также работает как с жесткими ссылками, так и с символическими ссылками ( ln).
редактировать
На этом этапе процесса загрузки PATH еще не установлен, поэтому крайне важно, чтобы во всем процессе использовались абсолютные пути. НО, как указано в комментариях Стива HHH, явное объявление полного пути к файлу ( /etc/init.d/filename) для команды update-rc.d недопустимо в большинстве версий Linux. Согласно справочной странице update-rc.d , второй параметр - это скрипт, расположенный в /etc/init.d/*. Обновлен приведенный выше код, чтобы отразить это.
Другое редактирование
Также, как указано в комментариях (Чарльз Брандт), /filenameдолжен быть сценарий стиля инициализации. Также был предоставлен хороший шаблон - https://github.com/fhd/init-script-template .
Как указано в комментариях (Рассел Ян), это работает только в режиме update-rc.d по умолчанию.
Согласно руководству update-rc.d, он может работать в двух режимах: «машины, использующие устаревший режим, будут иметь файл /etc/init.d/.legacy-bootordering», и в этом случае вам нужно передать последовательность и конфигурацию уровня запуска через аргументы командной строки.
Эквивалентный набор аргументов для приведенного выше примера:
Как и для вашего сведения, опция «по умолчанию» помещает ссылку для запуска скрипта на уровнях выполнения 2, 3, 4 и 5. (и помещает ссылку для остановки на уровнях 0, 1 и 6.)
Дэйв Ласли
5
Я только что пробовал это в Ubuntu Server 12.04 LTS, но в 12.04 у вас не может быть префикса /etc/init.d. Это просто sudo update-rc.d filename defaults.
Steve HHH
1
@puk И жесткие ссылки, и символические ссылки будут работать с этим методом
Дэйв Ласли
14
Просто хотел добавить, что / filename в этом случае должен быть скриптом в стиле инициализации. Вот шаблон для запуска вашего собственного сценария инициализации: github.com/fhd/init-script-template
crontab -e
чтобы отредактировать crontab вашего пользователя; добавить@reboot command
для запускаcommand
при каждой загрузке.Ответы:
Скрипт теперь должен запускаться при загрузке. Обратите внимание, что этот метод также работает как с жесткими ссылками, так и с символическими ссылками (
ln
).редактировать
На этом этапе процесса загрузки PATH еще не установлен, поэтому крайне важно, чтобы во всем процессе использовались абсолютные пути. НО, как указано в комментариях Стива HHH, явное объявление полного пути к файлу (
/etc/init.d/filename
) для команды update-rc.d недопустимо в большинстве версий Linux. Согласно справочной странице update-rc.d , второй параметр - это скрипт, расположенный в/etc/init.d/*
. Обновлен приведенный выше код, чтобы отразить это.Другое редактирование
Также, как указано в комментариях (Чарльз Брандт),
/filename
должен быть сценарий стиля инициализации. Также был предоставлен хороший шаблон - https://github.com/fhd/init-script-template .Еще одна ссылка на другую статью, чтобы избежать возможного гниения ссылок (хотя было бы печально, если бы GitHub умер) - http://www.linux.com/learn/tutorials/442412-managing-linux-daemons-with-init-scripts
пока еще
Как указано в комментариях (Рассел Ян), это работает только в режиме update-rc.d по умолчанию.
Согласно руководству update-rc.d, он может работать в двух режимах: «машины, использующие устаревший режим, будут иметь файл
/etc/init.d/.legacy-bootordering
», и в этом случае вам нужно передать последовательность и конфигурацию уровня запуска через аргументы командной строки.Эквивалентный набор аргументов для приведенного выше примера:
sudo update-rc.d filename start 20 2 3 4 5 . stop 20 0 1 6 .
источник
sudo update-rc.d filename defaults
.