Как запустить программу после запуска SSHD

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

Заранее спасибо !!

2
задан 17 July 2014 в 00:59

1 ответ

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

И после перезагрузки все работало, как я требовал в своем первом сообщении.

1
ответ дан 17 July 2014 в 00:59

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

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