我必须使用 monit 运行一个 C 程序。所以我不得不将其妖魔化。我所做的是,我采用守护进程模板进行一些更改,得到如下所示的文件,这是一个脚本文件:
# Source function library
. /home/stallions/queue.c
# Do preliminary checks here, if any
#### START of preliminary checks #########
##### END of preliminary checks #######
# Handle manual control parameters like start, stop, status, restart, etc.
case "$1" in
start)
# Start daemons.
echo -n $"Starting queue daemon: "
echo
daemon queue
echo
;;
stop)
# Stop daemons.
echo -n $"Shutting down queue: "
killproc queue
echo
# Do clean-up works here like removing pid files from /var/run, etc.
;;
status)
status queue
;;
restart)
$0 stop
$0 start
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 1
esac
exit 0
当我执行此文件 # ./queue 时出现错误
# line 8: 'void fifoinit(int size)'
# line 8: syntax error near unexpected token
我不确定源函数库路径应该是什么。我已为其指定了原始的queue.c退出的路径,我想将其作为守护进程运行。您能否告诉我是否还需要做其他事情才能将其作为守护进程运行以及如何纠正错误?
答案1
您需要先编译您的 C 程序。如果您的程序不依赖于任何要链接的库,则以下命令可以执行此操作:
$ gcc -o queue queue.c
如果一切顺利,这将生成二进制文件queue
。看来您的脚本正在尝试执行此二进制文件。您只需要确保设置正确的路径。
不要将 C 程序添加到 shell 脚本中。删除以下行:
. /home/stallions/queue.c