我想让Tiddlywiki在FreeBSD监狱工作(基于NAS4FEE主机)。
rc.d
下面的start_postcmd
脚本和PID文件功能不起作用。
有没有人对为什么会出现这种情况有任何建议?
#! /bin/sh
#
#
# PROVIDE: tiddliwiki
# REQUIRE: NETWORKING
# REQUIRE: DAEMON bgfsck
# KEYWORD: shutdown
. /etc/rc.subr
name="tiddlywiki"
rcvar="tiddlywiki_enable"
#start_cmd="tiddlywiki_start"
#stop_cmd="tiddlywiki_stop"
pidfile="/var/run/${name}.pid"
start_cmd="/usr/local/bin/node /usr/local/bin/tiddlywiki gosh --server 80 &"
# needed to set pid manualy as the rc.subr pid pid didn't work
start_postcmd="sleep 5 ; ps aux | grep -i 'gosh --server 80' | awk 'NR<2 {print $2}' > /var/run/${name}.pid"
stop_cmd="cat /var/run/${name}.pid | xargs kill -9"
load_rc_config $name
run_rc_command "$1"
答案 0 :(得分:1)
基于对发生相同事情的丰富经验的快速清单列出了可能的原因:
权限。节点应用程序是否具有该文件的写入权限?该文件是否已存在?
您的start_postcmd
可能没有抓住/抓取PID,因为该进程实际上没有运行。港口是否已被占用?你能从shell开始tiddlywiki吗?
您的start_postcmd
可能无法正确捕获/抓取PID,因为命令行很长并已包含在进程列表中。尝试添加w
并在shell中测试几次:ps auxww | grep -i 'gosh --server 80' | awk 'NR<2 {print $2}'
使用forever等节点工具可能会更好。通过一些工作,你可以制作一个start_cmd
。还有其他几种类似的工具,从简单到近核电站就绪。随机选择http://www.npmjs.org: