Como posso iniciar e parar um serviço usando o comando “service”, em vez de “/etc/init.d/nameofservice start”?

Como posso iniciar e parar um serviço usando o comando “service”, em vez de “/etc/init.d/nameofservice start”?

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.ddiretó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.

informação relacionada