Я запускаю службу (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, то будет выведено сообщение об использовании.