我在FreeNAS 9.10上的JAIL中安装了npm包/脚本。 (基于FreeBSD) 如果我运行" npm start"在安装脚本的目录中。
但是,我需要在监狱启动时自动启动它。我现在不知道这样做。我需要创建一个rc脚本吗?
基本上我需要做的就是给" npm start"在启动时的正确目录中。我该怎么做?
感谢
答案 0 :(得分:2)
是的,您可以在jail中放置一个rc脚本,并使用jail的/etc/rc.conf
文件启用它。
但是,对于快速而肮脏的解决方案,您可以创建一个/etc/rc.local
脚本(也在jail的环境中)并将启动命令放在那里。
请参阅manual page here。
答案 1 :(得分:1)
不知道有关npm start的信息,但是对于node.js,我做了这样的RC srcipt:
#!/bin/sh
# $FreeBSD: 340872 2014-01-24 00:14:07Z mat $
#
# PROVIDE: SERVICENAME
# REQUIRE: NETWORKING
# KEYWORD: shutdown
#
# Add the following line to /etc/rc.conf to enable SERVICENAME:
#
# SERVICENAME_enable="YES"
#
. /etc/rc.subr
name="SERVICENAME"
rcvar=SERVICENAME_enable
pidfile=${SERVICENAME_pidfile:-"/var/run/SERVICENAME.pid"}
command="/usr/sbin/daemon"
#command_args="-r -u USERNAME -P /var/run/SERVICENAME.pid /usr/local/bin/node /home/USERNAME/PROGDIR" # cjayho: restart if crashed
command_args="-u USERNAME -P /var/run/SERVICENAME.pid /usr/local/bin/node /home/USERNAME/PROGDIR"
load_rc_config $name
: ${SERVICENAME_enable:="NO"}
run_rc_command "$1"
将此文件命名为 SERVICENAME ,然后放入 /usr/local/etc/rc.d
以root身份启用自动启动运行命令:
sysrc SERVICENAME_enable="YES"
不要忘记将 SERVICENAME , USERNAME 和 PROGDIR 替换为您的值,然后添加
process.chdir('/home/USERNAME/PROGDIR')
进入您的入口js文件。