Estou iniciando um serviço (httpd) usando este comando:
/etc/init.d/'name of service' start
Como posso iniciar um serviço usando o comando abaixo, se a palavra-chave service não estiver configurada para o serviço httpd acima?
2) início do serviço 'nameofservice', por exemplo: serviço httpd start
Como posso configurar um serviço que pode iniciar e parar usando a palavra-chave de serviço, ou seja: "service 'nameofservice' start" (palavra-chave de serviço como na opção 2) em vez de /etc/init.d/nameofservice?
Responder1
O comando service(8) procura um script em /etc/init.d. Se esse script não existir, talvez seja necessário escrever o seu próprio. Na web você pode encontrarguias que irão ajudá-lo a fazer isso.
Responder2
Abaixo script testado no Centos 5. Criaremos um script que imprimirá a data e hora atuais e a saída direcionada para o arquivo de log e salvará com o nome cronometrado.
vim /opt/timed
#!/bin/bash
while true;do
echo `date` >> /tmp/timed.log
done #script finish here below line enable execute permission of script
chmod +x /opt/timed
Agora escreveremos o script System V para iniciar e parar o script cronometrado.
vim /etc/init.d/time (save the script only in /etc/init.d directory only with the name of your choice we use name time here)
#!/bin/bash
# chkconfig: 345 80 20
# description: startup script for /opt/timed daemon
start() {
nohup /opt/timed &
}
stop() {
pkill timed
}
case "$1" in
start)
start #calling the start () function
;;
stop)
stop # calling the stop() function
;;
*)
echo "Usage: $0 {start|stop}"
RETVAL=1 #we return the value 1 bcz cmd is not sucessfull
esac
exit 0
chmod +x /etc/init.d/time (enabling the execute permission of script)
service time start (it will start the script timed)
ps –ef | grep timed (we can check that script is running with this command)
Explicação do roteiro
O script de horário deve estar no /etc/init.d
diretório. chkconfig: 345 80 20
é um componente necessário do script 345 que representa os níveis de execução 3,4 e 5. 20 significa que o comando start terá o número 20 (S20) no diretório /etc/rc3/. 80 significa que o comando stop terá o número 80 (k80) no diretório /etc/rc3/.
start()
e stop()
são funções para iniciar e parar o daemon. Quando você executa um trabalho Unix em segundo plano (usando o comando &, bg) e sai da sessão, seu processo será encerrado. Você pode evitar isso usando vários métodos - executando o trabalho com nohup ou tornando-o como trabalho em lote usando o comando at, batch ou cron. O comando PKill permite encerrar um programa simplesmente especificando o nome. $1 leva o primeiro argumento. $0 significa nome do script. RETVAL é a variável de ambiente que é como o status de saída do script se for 0, o script foi executado com êxito e 1 significa que o script não foi executado com êxito. Se especificarmos um comando diferente de iniciar ou parar, a mensagem de uso será impressa.