我有一个在用户帐户(基于 Plack)中运行的应用程序,并且需要一个 init 脚本。
它看起来就像“sudo $user start_server ...”一样简单。我刚刚使用 start-stop-daemon 编写了一个 LSB 脚本,它真的很笨拙和冗长。感觉不是正确的方法。
经过一番搜索并查看示例日志后,我仍然不确定执行此操作的最佳方法是什么,并且我没有找到一个有凝聚力的指南。
现在我正在使用它:
start-stop-daemon --background --quiet --start --pidfile $PIDFILE \
--make-pidfile --chuid $DAEMONUSER \
--exec $DAEMON -- $DAEMON_OPTS
使用 DAEMON 和 DAEMON_OPTS 作为:
DAEMON="/home/mediamogul/perl5/perlbrew/perls/current/bin/start_server"
DAEMON_OPTS="--port $PORT -- starman --workers $WORKERS /home/mediamogul/MediaMogul/script/mediamogul.psgi"
这需要我调整如何检测运行,因为它是一个 perl 脚本,所以 perl 显示为命令而不是“start_server”。
(我在该用户帐户上使用 perlbrew 运行它,因此它与系统 perl 完全分离,这就是路径指向用户目录中的 perl 的原因)
这真的是最好的方法吗?这对我来说似乎很笨重,但我不是管理员类型。