Alguém sabe (de uma lista de recursos) quais scripts são executados automaticamente e quando, desde o momento em que inicializo o computador até ele ser desligado novamente.
Conheço vários lugares onde posso adicionar scripts para execução automática, mas nunca consegui descobrir uma lista mais ou menos completa.
Por exemplo, eu conheço estes:
~/.profile
é executado no login- Posso usar
crontab -e
para adicionar scripts que serão acionados em determinados horários e/ou datas
Mas não consigo descobrir onde colocar os scripts para que sejam executados
- após a inicialização, antes do X ser inicializado
- depois que o X (ou outro shell gráfico) for inicializado, mas antes que alguém esteja logado
- depois de fazer login em uma sessão X
- antes/depois da troca rápida de usuário
- antes de sair de uma sessão X
- antes do desligamento no shell X
- após o desligamento do X, antes da parada do sistema
- após o login/antes do logout via tty-1..6
- após o login/antes do logout via SSH
Existe essa lista? Se não, podemos montar um aqui?
Responder1
Para Ubuntu Linux temos a solução como:
Após a inicialização, antes do X ser inicializado:Ubuntu inicia o X-Windows a partir do GDM (aqueles que usam o ubuntu-desktop) ou do KDM (aqueles que usam o kubuntu-desktop)
Para executar um script anterior ao GDM/KDM, você deve escrever seu próprio script inicial. Para isso, você pode lerLivro de receitas para iniciantes.
Após a troca de usuário:Você tem que adicionar o script no
~/.bashrc
arquivo.Após fazer login via tty:Você tem que adicionar o script no
~/.bash_profile
arquivo.Após o login usando ssh, mas não durante o login local usando tty:Neste caso também você deve adicionar o script no mesmo
~/.bash_profile
arquivo, mas neste caso, teste a presença daSSH_CONNECTION
variável de ambiente e só execute os comandos se descobrir que ela existe.Antes de sair via tty:Você tem que adicionar o script no
~/.bash_logout
arquivo.Antes de sair via ssh:Você tem que adicionar o script no
~/.bash_logout
arquivo, mas neste caso também, teste a presença daSSH_CONNECTION
variável de ambiente e só execute os comandos se descobrir que ela existe. No arquivo você deve adicionar a linhaif [[ -n $SSH_CONNECTION ]]
Responder2
Se você estiver interessado em tarefas integradas do Linux, você também pode consultar os níveis de execução do Linux, que é o modo de operação que implementa a inicialização no estilo Unix System V.
- 0 Halt Desliga o sistema.
- 1 Modo de usuário único Modo para tarefas administrativas.
- 2 Modo multiusuário Não configura interfaces de rede e não exporta serviços de rede.
- 3 Modo multiusuário com rede Inicia o sistema normalmente.
- 4 Não utilizado/Definível pelo usuário Para fins especiais.
- 5 Inicie o sistema normalmente com o gerenciador de exibição apropriado. (com GUI) Como gerenciador de exibição de nível de execução 3 +.
- 6 Reinicializar Reinicia o sistema.
Por exemplo, abaixo você pode ver uma lista parcial de processos Linux e suas configurações de nível de execução:
chkconfig --list
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
atd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
auditd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
autofs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
avahi-daemon 0:off 1:off 2:off 3:off 4:off 5:off 6:off
avahi-dnsconfd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
.
.
.