Como iniciar o programa após o SSHD estar ativo e em execução

2

Estou trabalhando em um projeto que requer que eu inicie uma GUI antes do prompt de login. Eu tinha esse trabalho abaixo de 12,10, mas hoje migrei para 14,04 e está quebrando as coisas. Neste ponto, configurei o Grub para inicializar no modo de texto e escrevi um script S99StartProgram no diretório /etc/init.d que está sendo colocado como em /etc/rcS.d depois de executar:

update-rc.d StartProgram start 99 S .

Meu cabeçalho no topo do script é:

### 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

O script parece estar funcionando, no entanto, ele não está iniciando depois do sshd, o que significa que estou sendo bloqueado do SSHing no sistema assim que os programas XSession forem iniciados. Eu tentei correr:

service --status-all

e isso me deu a saída:

[+] acpid  [-] anacron  [-] apparmor  [? ] apport  [-] avahi-daemon  [+] bluetooth  [-] brltty  [? ] console-setup  [+] cron  [+] xícaras  [+] xícaras  [-] dbus  [? ] dns-clean  [+] recuperação amigável  [-] grub-common  [? ] irqbalance  [+] kerneloops  [? ] killprocs  [? ] kmod  [? ] lightdm  [? ] networking  [? ] sob demanda  [? pppd-dns  [-] procps  [-] pulseaudio  [? ] rc.local  [+] resolvconf  [-] rsync  [+] rsyslog  [+] saned  [? limpeza de tela  [? [] sendigs  [? ] distribuidor de fala  [-] ssh  [-] sudo  [-] udev  [? ] umountfs  [? ] umountnfs.sh  [? ] umountroot  [-] upgrades não assistidos  [-] urandom  [-] x11-comum

Eu também tentei rodar:

service ssh stop

e ainda posso usar o ssh no dispositivo.

O único outro sistema de boot que eu encontrei é o systemd, mas pelo que eu li (apesar de existirem muitos diretórios systemd no Ubuntu) o Ubuntu não usa o systemd fora da caixa.

Alguém por favor pode me explicar o que está acontecendo? Onde o sshd está sendo executado? E como faço meu roteiro esperar até que seja feito?

Obrigado antecipadamente !!

    
por user3597497 16.07.2014 / 22:59

1 resposta

1

Os scripts init.d combinados com update-rc.d não tiveram sucesso em renderizar o comportamento do sistema desejado. Acabei aprendendo mais sobre o UpStart, que parece ser o principal método para iniciar programas no Ubuntu.

Eu criei este script em / etc / init como start_program.conf:

description "Start Program"
author      "Anonymous"

start on started JOB=ssh    

script
    ifconfig can0 up
    exec /full/path/to/program &
end script

Eu só precisava executar o comando:

initctl reload-configuration

Depois de uma reinicialização, tudo funcionou como eu desejei no post inicial.

    
por user3597497 21.07.2014 / 18:28