Запуск скрипта как сервис
Часто бывает необходимо запустить какой-нибудь скрипт при загрузке системы, а также управлять им. Вот мой пример как я запускал скрипт.
Создадим файл с название crm, наполним его следующим содержанием:
# !/bin/sh # chkconfig: - 98 02 # description: vtiger_con_asterisk # processname: crm # Source function library. if [ -f /etc/init.d/functions ] ; then . /etc/init.d/functions elif [ -f /etc/rc.d/init.d/functions ] ; then . /etc/rc.d/init.d/functions else exit 0 fi KIND="НАЗВАНИЕ ВАШЕГО СЕРВИСА" start() { echo -n $"Starting $KIND services: " daemon /var/www/html/vtigercrm/cron/modules/PBXManager/AsteriskClient.php & echo } stop() { echo -n $"Shutting down $KIND services: " killall AsteriskClient.php & killproc crm echo } restart() { echo -n $"Restarting $KIND services: " killall AsteriskClient.php & killproc crm daemon /var/www/html/vtigercrm/cron/modules/PBXManager/AsteriskClient.php & echo } case "$1" in start) start ;; stop) stop ;; restart) restart ;; *) echo $"Usage: $0 {start|stop|restart}" exit 1 esac exit $?
Именно такой формат подход для утилиты chkconfig. В самом начале файла есть строка
# chkconfig: - 98 02
98 - это очередь запуска скрипта при включении системы. 02 - очередь останова при выключении системы.
затем созданный файл помещаем в паку:
/etc/rc.d/init.d/
теперь нам нужно от рута добавить скрипт, как сервис, следующей командой:
chkconfig --add crm
теперь у нас есть сервис с названием crm. Для того чтобы он запускался при включении системы, от рута вводим следующую команду:
chkconfig crm on
Теперь сервис сrm работает как все остальные сервисы, и откликается на команды:
service crm start service crm stop service crm restart