Я работаю над проектом, который требует, чтобы я запустил графический интерфейс перед приглашением войти в систему. У меня это работало под 12.10, но сегодня я перешел на 14.04, и это ломает вещи. На данный момент я настроил Grub для загрузки в текстовом режиме и написал скрипт S99StartProgram в каталоге /etc/init.d, который после запуска выполняется как /etc/rcS.d:
update-rc.d StartProgram start 99 S .
Мой заголовок в верхней части скрипта:
### BEGIN INIT INFO
# Provides: VTTI_StartProgram
# X-Start-Before: x11-common
# Required-Start: $remote_fs $network $syslog $sshd
# Required-Stop: $remote_fs $network $syslog $sshd
# Default-Start: S
# Default-Stop:
# Short-Description: Start Software at Boot Time
# Description: Debian init Script to Start Software at Boot Time
### END INIT INFO
Сценарий, кажется, работает, однако, он не запускается после sshd, что означает, что я заблокирован от SSHing в систему после запуска программы XSession. Я попытался запустить:
service --status-all
, и это дало мне вывод:
[+] acpid [-] anacron [-] apparmor [? ] apport [-] avahi-daemon [+] bluetooth [-] brltty [? ] console-setup [+] cron [+] cups [+] просматривают чашки [-] dbus [? ] dns-clean [+] friendly-recovery [-] grub-common [? ] irqbalance [+] kerneloops [? ] killprocs [? ] кмод [? ] lightdm [? ] сеть [? ] по запросу, по требованию [ ? ] pppd-dns [-] procps [-] pulseaudio [? ] rc.local [+] resolvconf [-] rsync [+] rsyslog [+] saned [? ] очистка экрана [? ] Sendigs [? ] диспетчер речи [-] ssh [-] sudo [-] udev [? ] umountfs [? ] umountnfs.sh [? ] umountroot [-] unattended-upgrades [-] urandom [-] x11-common
Я также попытался запустить:
service ssh stop
, и я все еще могу подключиться к устройству по ssh.
Единственная другая загрузочная система, с которой я столкнулся, - это systemd, но из того, что я прочитал (хотя в Ubuntu есть тонны каталогов systemd), Ubuntu не использует systemd из коробки.
Может кто-нибудь объяснить мне, что происходит? Откуда запускается sshd? И как мне заставить мой сценарий подождать, пока он не будет готов?
Заранее спасибо !!
init.d сценарии, объединенные с обновлением-rc.d, были неудачны в рендеринге моего желаемого поведения системы. Я закончил тем, что узнал больше о UpStart, который, кажется, основной метод для запуска программ на Ubuntu.
я создал этот сценарий в/etc/init как start_program.conf:
description "Start Program"
author "Anonymous"
start on started JOB=ssh
script
ifconfig can0 up
exec /full/path/to/program &
end script
я затем просто должен был выполнить команду:
initctl reload-configuration
И после перезагрузки все работало, как я требовал в своем первом сообщении.