Назад | Перейти на главную страницу

Скрипты запуска Ubuntu

У меня возникли проблемы при попытке создать сценарий запуска в Ubuntu 9.04. Я последовал этому руководству, но оно не сработало: http://embraceubuntu.com/2005/09/07/adding-a-startup-script-to-be-run-at-bootup/

Я последовал руководству и создал сценарий, чтобы проверить, работает ли он:

#This script is called test    
#!/bin/bash
#Startup Firefox
firefox&

Я также пытался использовать #! / Bin / sh, но, похоже, возникла та же проблема.

Создав файл test в /etc/init.d, я ввел его в терминал:

ubuntuUser@ubuntu:~$ sudo update-rc.d test defaults

но я получаю эту ошибку:

ubuntuUser@ubuntu:~$ sudo update-rc.d test defaults
update-rc.d: warning: /etc/init.d/test missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
 System startup links for /etc/init.d/test already exist.

Я не знал, что такое LSB, проигнорировал его и набрал следующую строку:

ubuntuUser@ubuntu:~$ sudo chmod +x /etc/init.d/test

После этого я перезапустил свой компьютер, но он не работал.

Проблема в том, что я не знаю, мешает ли мой скрипт загрузиться при запуске из-за «недостающей информации LSB», написал ли я свой стартовый скрипт именно так, или я делаю это совершенно неправильно.

Я предполагаю, что основные вопросы заключаются в том, использую ли я неправильное руководство и как мне сделать так, чтобы сценарий запуска?

Во-первых, скрипт должен начинаться со строки hashbang:

#!/bin/bash
# All other lines should follow this one.

Ошибка LSB относится к этому блоку, который находится во всех скриптах инициализации системы.

### BEGIN INIT INFO
# Provides:          defaultdaemon
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INF

Раньше я не использовал update-rc.d, но беглый взгляд на страницу руководства показывает, что по умолчанию используется S20 - это последовательность загрузки, которую будет запускать скрипт (где 1 - самое раннее, а 99 - максимальное). Как правило, это должно быть 99, если вы не знаете иначе, поскольку то, что вы запускаете, может зависеть от других служб - почты, сети, системного журнала и т. Д.

Когда вы говорите, что сценарий не работает, какого поведения вы ожидали? Этот сценарий пытается запустить firefox во время загрузки машины, он не запускается при входе пользователя в систему.

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

Я последовал руководству и создал сценарий, чтобы проверить, работает ли он:

# Этот скрипт называется test
#! / bin / bash

Строка «hashbang» должна быть первой строкой в ​​любом скрипте. Если руководство предложило иное, выберите другое руководство.

Я не знал, что такое LSB, и проигнорировал его

Итак, что произошло, когда вы прочитали и поняли документацию update-rc.d указал на вас?

Похоже, вы хотите запускать программы после входа в систему. Вероятно, вам следует использовать это:

http://www.linuxscrew.com/2007/08/09/autostart-programs-in-ubuntu/

В противном случае сценарий попытается запустить до запуска X, и это не сработает.

Для получения дополнительной информации о том, как загружается Linux, проверьте: http://www.losurs.org/docs/linuxinit

LSB - это Стандартная база Linux. Взгляни на вики-страница Debian что предупреждение рекомендовано. Об этом много полезной информации.