У меня возникли проблемы при попытке создать сценарий запуска в 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 что предупреждение рекомендовано. Об этом много полезной информации.