Выполнение команд при загрузке в 11.10

О вашей неспособности увидеть файл, может быть, потому, что имя файла начинается с символа '.' и, следовательно, рассматривается как скрытый файл. В Ubuntu вы можете нажать Ctrl + h, чтобы показать скрытые файлы. В терминале вы можете ввести

ls -a

, чтобы показать скрытые файлы.

Что касается проблем с «sudo», перечисленных выше, они правы. Будьте осторожны с этим. Лучше просто удалить его или сделать так, чтобы вы могли его удалить (chmod / chown), а затем просто удалить его в обычном режиме. Лучше, чем жаль:)

4
задан 16 January 2012 в 23:52

2 ответа

Ответ Марти Фрида содержит самую ценную информацию: Поваренную книгу.

Однако, возиться с init.d, rc * .d, chkconfig и др. - это не то, что вы хотите сделать. На Ubuntu (и других дистрибутивах) они просто остатки старого sysvinit, который многие пакеты используют или просто поддерживают по устаревшим причинам. ВАМ НЕ НРАВИТСЯ ИЛИ ХОТИТЕ ПОЛУЧИТЬ: -)

Простейший из всех сценариев Upstart запускает демон (поместите его в /etc/init/mydaemon.conf):

exec /path/to/binary

Все, что вам нужно. Это заставляет Upstart запускать демон, когда вы делаете start mydaemon.

ОК, вы хотите, чтобы он запускался автоматически? Обычно, начиная с dbus, это логический выбор, поэтому давайте сделаем это:

start on started dbus
stop on stopping dbus
exec /path/to/binary

Этот простой скрипт запускает ваш демон каждый раз, когда запускается dbus, и остановит его до того, как dbus остановится.

[d8 ] Вы хотите, чтобы он респаун (повторный запуск), если он сработает? Нет проблем, просто добавьте respawn в свою строку к файлу.

Ваш демон винит или демоннизирует себя? Ну давайте поймать его, тем не менее! Добавьте expect fork в случае одиночной форвки или expect daemon в случае демонации истины (double-fork).

Давайте подведем простой сценарий запуска для вашего демона:

author "Your name goes here - optional"
description "What your daemon does shortly - optional"

start on started dbus
stop on stopping dbus

# console output  # if you want daemon to spit its output to console... ick
respawn # it will respawn if crashed/killed

exec /path/to/binary

Если вы не хотите запускать демона, а всего лишь несколько команд, запустите строку exec и добавьте раздел сценария:

script
   echo "Hello world!"
end script

Это заставляет Upstart запускать скрипт вместо демона. Секция сценария - это обычный сценарий оболочки, поэтому вы можете делать практически все, что захотите внутри.

Надеюсь, это поможет. Придерживайтесь конфигурационных файлов Upstart и не возитесь с старым sysv, и вы будете продолжать работать: -)

8
ответ дан 25 May 2018 в 15:07
  • 1
    Я сделал это, я добавил myscript.conf в /etc/init с start on started dbus и exec /my/script и перезагрузился, но он не работал – amphibient 9 May 2014 в 01:30

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

Я не эксперт, и я также не уверен, где вы заблудились, но вы читали здесь информацию: http: // upstart.ubuntu.com/cookbook/

В / etc, есть много примеров, чтобы посмотреть. Я думаю, что фактические скрипты находятся в / etc / init, со ссылками в разных каталогах, таких как rc0.d, rc1.d, вверх. Они зависят от того, на каких уровнях выполнения вы хотите, чтобы ваш скрипт работал. Я, кажется, помню, что Ubuntu на самом деле не использует много уровней запуска, поэтому вы можете увидеть много дублирования или неиспользуемые ссылки.

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

2
ответ дан 25 May 2018 в 15:07

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

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