Lista de scripts (locais) que são executados automaticamente e quando?

4

Alguém sabe (de uma lista de recursos) quais scripts são executados automaticamente e quando, desde o momento em que inicio o computador até que ele seja desligado novamente?

Conheço vários locais onde posso adicionar scripts para serem executados automaticamente, mas nunca consegui descobrir uma lista mais ou menos completa.

Por exemplo, eu sei disso:

  • ~/.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 scripts para que eles sejam executados

  • após a inicialização, antes de o X ser inicializado
  • após o X (ou outro shell gráfico) ser inicializado, mas antes que alguém esteja logado
  • após o 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 tal lista? Se não, podemos montar um aqui?

    
por Martijn 25.03.2012 / 12:05

2 respostas

4

Para o Ubuntu Linux, temos a solução como:

  1. Para depois do boot, antes do X ser inicializado: O 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 antes do GDM / KDM, você deve escrever o seu próprio script upstart. Para isso, você pode ler o Cookbook Upstart .

  2. Após a troca de usuário: Você precisa adicionar o script no arquivo ~/.bashrc .

  3. Após o login na via tty: Você precisa adicionar o script no arquivo ~/.bash_profile .

  4. Após o login usando ssh, mas não durante o login local usando tty: Nesse caso, também é necessário adicionar o script no mesmo arquivo ~/.bash_profile , mas, neste caso, teste para o presença da variável de ambiente SSH_CONNECTION e só execute os comandos se achar que existe.

  5. Antes de efetuar o logout por meio de tty: você precisa adicionar o script no arquivo ~/.bash_logout .

  6. Antes de fazer logoff via ssh: Você precisa adicionar o script no arquivo ~/.bash_logout , mas também neste caso, testar a presença da variável de ambiente SSH_CONNECTION e só executar os comandos se você achar que existe. No arquivo você tem que adicionar a linha

    if [[ -n $SSH_CONNECTION ]]

por 25.03.2012 / 13:13
2

Se você estiver interessado em tarefas integradas do Linux, também poderá consultar runlevels do Linux, que é o modo de operação que implementa a inicialização no estilo Unix System V.

  • 0 Parar Desliga o sistema.
  • 1 Modo modo de usuário único para tarefas administrativas.
  • 2 Modo multiusuário Não configura interfaces de rede e não exporta serviços de redes.
  • 3 Modo multiusuário com rede Inicia o sistema normalmente.
  • 4 Não usado / Definido 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 do nível de execução 3
  • 6 Reiniciar Reinicia o sistema.

Por exemplo, abaixo, você pode ver uma lista parcial dos processos do 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
.
.
.
    
por 25.03.2012 / 16:26