我必须在启动/停止脚本中调用perl程序。我在path / to / program:/ home / nuthan / server中有我的perl程序。 现在,我的任务是创建一个启动/停止脚本。即,需要在启动时调用命令守护程序-d -v -r perl / home / nuthan / server -l / tmp / k 并在停止时终止pid。我在网上找到了太多的脚本,我在http://www.cyberciti.biz/tips/linux-write-sys-v-init-script-to-start-stop-service.html找到了这个。但我不明白这一点,因为我是Perl的新手。请帮忙,我在哪里添加命令,或者我错了吗?
#!/bin/bash
# description: Foo server
# Get function from functions library
. /etc/init.d/functions
# Start the service FOO
start() {
initlog -c "echo -n Starting FOO server: "
/path/to/FOO &
### Create the lock file ###
touch /var/lock/subsys/FOO
success $"FOO server startup"
echo
}
# Restart the service FOO
stop() {
initlog -c "echo -n Stopping FOO server: "
killproc FOO
### Now, delete the lock file ###
rm -f /var/lock/subsys/FOO
echo
}
### main logic ###
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status FOO
;;
restart|reload|condrestart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac
exit 0
答案 0 :(得分:2)
这是您需要将daemon
命令放在start function
中的位置。
start() {
initlog -c "echo -n Starting FOO server: "
daemon -d -v -r perl /home/nuthan/server -l /tmp/k
### Create the lock file ###
touch /var/lock/subsys/FOO
success $"FOO server startup"
echo
}
通常init.d
脚本应该记录pid,而killproc
应该知道在哪里找到pid。
然而,有很多方法无法按预期工作,你将学习很多关于修复它的unix,perl和init.d脚本。