autorun um programa linux na inicialização de um usuário não-root em centOS 6 64bit

1

Eu tenho um software que precisa ser executado via usuário específico "non-root", portanto, seu diretório home é /home/non-root/ , Eu tenho que enfatizar que o programa não deve ser executado via root e só deve ser executado após o mysql começou a correr

E tem um software que precisa ser executado por meio do comando: ./athena-start start . Eu não estou realmente familiarizado com o sistema unix, eu tentei googling para qualquer tutorial, mas eu não tive sorte em encontrar um guia que ensina como auto-executar via non-root e em centos, eu encontrei este aqui , mas parece que é apenas para o Fedora.

Alguém pode me ajudar?

    
por The Wolf 02.08.2014 / 12:55

1 resposta

3

Existem algumas abordagens para isso. Um script de inicialização, usando crontab e vários outros. O mais simples, na minha humilde opinião, é usar @reboot tag no crontab do usuário que deveria estar rodando o comando athena-start start .

A tag @reboot executa o comando exatamente uma vez após a inicialização do seu computador. Use crontab -e -u <yourusername> para colocar o que segue em crontab do usuário de sua escolha. O que segue é o que você deve colocar no crontab.

@reboot while [ "x'ps -ef|awk '$8 ~ /[:print:]*mysqld[:mysqld:]*/ { print $2 }'|wc -l'" == "x0" ]; do sleep 10 ; done && cd /your/directory && ./your_command

Pode ser uma boa ideia escrever isso em um script e colocá-lo em algum lugar, em vez de usar uma única linha horrível em seu crontab. A idéia por trás de tudo isso é: nós checamos a tabela de processos a cada 10 segundos e se encontramos uma correspondência, ie. existe um processo mysqld (ou algo parecido com ele), nós saímos do loop, mudamos para o diretório onde o precioso comando a ser executado é e então rodamos o comando no final.

Outra opção seria escrever um script de init que inicia após o daemon do MySQL, mas um exemplo para isso exigiria o conteúdo da linha que começa com # chkconfig do seu script de init do MySQL.

    
por 02.08.2014 / 17:16