editando /etc/init.d/rc.local para executar após os processos de login tty

2

fazendo um ps-e , vejo o seguinte na inicialização:

PID  TTY CMD
...
1880 ?   my_auto_script
1881 tty1 login
1882 tty2 getty

...

my_auto_script é chamado de /etc/rc.local . Eu tenho /etc/init.d/rc.local configurado como tal:

Required-Start: $all
Default-Start: 2 3 4 5

, então isso deve durar por último. Mas isso não parece ser capaz de ser executado depois de nenhum processo tty . Isto é o que eu preciso. Como faço isso funcionar?

    
por mugetsu 12.10.2013 / 01:59

2 respostas

1

Os tty s são gerados a partir de /etc/inittab . Por padrão, as linhas que os geram vêm depois das linhas que executam os scripts rc . Por exemplo, no meu (não personalizado) inittab , tenho:

...
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
...
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

Portanto, rc.local é realmente originado antes de seus tty s serem gerados. Eu não acredito que mudar as linhas, então elas são o contrário, são seguras. Eu acho que você precisa esperar por alguém mais experiente para confirmar / refutar.

Se você está procurando personalização de última hora antes dos usuários fazerem login, por que não descartar um script em /etc/profile.d ? Isso afetará os shells iniciados a partir de um emulador de terminal, não apenas os VTs.

    
por 12.10.2013 / 02:08
1

Os prompts de login em modo de texto aparecem após a conclusão dos programas de inicialização, incluindo os executados em /etc/rc.local . Esse é o ponto dos programas de inicialização: ser executado na inicialização, antes dos usuários se conectarem.

Se você deseja executar um programa quando o sistema é iniciado e deseja permitir que os usuários efetuem login antes da conclusão do seu programa, você tem duas opções. Muitas versões do cron permitem que você especifique @reboot em vez de um tempo de execução para executar um trabalho no momento da inicialização; Verifique o manual do crontab (5) em seu sistema para ver se @reboot é suportado. Como alternativa, execute seu programa em /etc/rc.local (ou algum outro script de inicialização), mas em segundo plano:

/path/to/my_auto_script &
    
por 13.10.2013 / 01:48

Tags