Scripts de inicialização / reinicialização para usuários diferentes

0

Eu ainda estou tentando aprender um pouco mais sobre bash scripting e start-up / reboot, eu li sobre crontab @reboot e também apenas olhando para outras opções, mas eu só queria saber se alguém poderia me apontar para a direita direção antes que eu descubra que existem limites no método que estou tentando assim ...

Aqui está o que estou tentando realizar:

Eu tenho 2 usuários que precisam executar processos na reinicialização / inicialização:

Usuário1: 5 Processos todos executados com privilégios padrão (sem problemas aqui)

User2: 2 Os comandos escalados (sudo) e 5 processam os privilégios padrão para serem executados, mas apenas uma vez que o mysql e os processos acima estejam ativos.

Eu só tenho acesso ssh ao servidor, então é por isso que optei pelas informações que tenho lido para testar o método bash / cron.

Eu testei comando sudo funciona com um script bash e parece ser bom, todas as contas usam chaves em vez de senhas para que eu não seja solicitado a confirmar a senha, eu ainda tenho que testar isso em uma reinicialização, mas vai faça muito em breve.

O principal problema é verificar se os 5 processos executados pelo user1 foram carregados antes de permitir que o user2 inicie seu trabalho, com dois scripts bash separados é possível criar um wait ou loop para verificar nomes de processos em execução antes de continuar?

Obrigado

    
por user1312469 25.02.2014 / 16:02

2 respostas

0

Não tenho certeza se é isso o que você está procurando, mas acredito que o .profile seja executado na inicialização do usuário individual.

Espero que isso ajude para metade do seu problema, mas se você estiver registrando o usuário simultaneamente, não acredito que funcionará sequencialmente.

Ubuntu .profile

Uma maneira que eu uso para verificar processos é com scripts python. Eu não sei se é possível fazer verificações soltas no bash mas eu sei em python você pode tentar usar o Popen para executar o comando do terminal

ps aux | grep the-process

como tal

p = subprocess.Popen(('ps', 'aux'), stdout=subprocess.PIPE)
g = subprocess.Popen(("grep", "the-process"), stdin=p.stdout, stdout=subprocess.PIPE)

E ele retornará uma lista dos processos em execução com esse nome. Execute um cheque e então você pode tê-lo em loop até que se torne verdade.

Espero que isso também ajude.

    
por Mr.Lee 25.02.2014 / 16:08
0

Sim, você pode. Aqui está um exemplo que este script dorme por 30 segundos você também pode usar 1m para dormir por 1 minuto. Você também pode tentar adicionar / root / myscript em /etc/rc.local, mas não sei se isso funciona com o tempo de execução que você precisa.

 #!/bin/bash  
sleep 30  
/root/myscript
    
por Tim Jonas 25.02.2014 / 16:13