Как запустить и остановить службу, используя команду «service» вместо «/etc/init.d/nameofservice start»?

Как запустить и остановить службу, используя команду «service» вместо «/etc/init.d/nameofservice start»?

Я запускаю службу (httpd) с помощью этой команды:

/etc/init.d/'name of service' start

Как запустить службу с помощью команды ниже, если ключевое слово service не настроено для указанной выше службы httpd?

2) запуск службы «имя_службы», например: service httpd start

Как настроить службу, которая может запускаться и останавливаться с помощью ключевого слова службы, например: «service 'nameofservice' start» (ключевое слово службы, как в варианте 2) вместо /etc/init.d/nameofservice?

решение1

Команда service(8) ищет скрипт в /etc/init.d. Если такого скрипта нет, вам может потребоваться написать свой собственный. В Интернете вы можете найтируководства, которые помогут вам это сделать.

решение2

Ниже приведен скрипт, протестированный в Centos 5. Мы создадим скрипт, который выведет текущую дату и время, а также направит вывод в файл журнала и сохранит его под именем timed.

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

Теперь мы напишем сценарий System V для запуска и остановки синхронизированного сценария.

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)

Объяснение сценария

Скрипт времени должен находиться в /etc/init.dкаталоге. chkconfig: 345 80 20Необходимый компонент скрипта 345 представляет уровни выполнения 3, 4 и 5. 20 означает, что команда запуска будет иметь номер 20 (S20) в каталоге /etc/rc3/. 80 означает, что команда остановки будет иметь номер 80 (k80) в каталоге /etc/rc3/.

start()и stop()являются функциями для запуска и остановки демона. Когда вы выполняете задание Unix в фоновом режиме (используя команду &, bg) и выходите из сеанса, ваш процесс будет завершен. Вы можете избежать этого несколькими способами — выполнить задание с помощью nohup или сделать его пакетным заданием с помощью команды at, batch или cron. Команда PKill позволяет вам завершить программу, просто указав ее имя. $1 принимает первый аргумент. $0 означает имя скрипта. RETVAL — это переменная окружения, которая является статусом завершения скрипта, если она равна 0, скрипт выполнен успешно, а 1 означает, что скрипт не выполнен успешно. Если мы укажем команду, отличную от start или stop, то будет выведено сообщение об использовании.

Связанный контент