我在位置开发了以下脚本/usr/local/etc/rc.d/bluesky
#!/bin/sh
# PROVIDE: bluesky
# REQUIRE: mysql sshd
# BEFORE:
# KEYWORD:
. /etc/rc.subr
name="bluesky"
rcvar=bluesky_enable
start_cmd="${name}_start"
stop_cmd=":"
load_rc_config $name
: ${bluesky_enable:=no}
: ${bluesky_msg="HTTP server starts ..."}
bluesky_start(){
echo $PATH
export PATH=$PATH:/usr/local/bin/
echo $PATH
### Run Node server ###
/usr/local/bin/node /usr/home/ict/Documents/bluesky/server.js
echo "$bluesky_msg"
}
run_rc_command "$1"
我还在我的/etc/rc.conf
文件中启用了它:
bluesky_enable="YES"
当我重新启动服务器时,脚本工作正常并在端口 80 启动 HTTP 服务器。唯一的问题是脚本不会被发送到后台或不会作为守护进程启动。我想知道如何在启动时在后台运行脚本或作为守护进程运行脚本。
RC 脚本本身并不打算用于守护进程,而是希望启动和停止守护进程。
如果您的服务没有作为守护程序启动的选项,您可以使用daemon(8)来管理该部分。
一个例子:
在 FreeBSD 终端上,我安装了PM2:
然后
rc.d
根据以下修改脚本pm2
:现在,HTTP 服务器在引导时作为守护进程启动。不过,我真的很喜欢@RichardSmith 建议的 FreeBSD守护进程 (8)的想法,我将继续努力。