我正在开发一个 ruby on rails 应用程序来实现聊天功能。我无法在生产模式下设置 juggernaut 服务器。
我跟着本指南设置 redis。并且它运行正常。
然后我跟着这是为了设置 juggernaut。但是当我尝试启动 juggernaut 时它却不工作。
下面是使用 grep 命令检查 redis 是否正常工作但 juggernaut 是否不正常工作的结果。
当我尝试停止/启动 redis 服务器时,它会给出输出,即:
Starting/Stopping redis-server: redis-server.
但当我对 juggernaut 执行相同操作时,没有任何反应。请查看屏幕截图。
检查实际发生的情况还有以下一些事项:
/etc/init.d/juggernaut 文件的可执行文件权限--是
-rwxr-xr-x 1 fizzy fizzy 1310 Sep 19 11:06 juggernaut
PIDFILE=/var/run/juggernaut.pid' 已定义。它存在吗? --- 不存在
在“开始”部分,它运行“chown juggernaut:juggernaut”。用户 juggernaut 是否存在,并且它是否是 juggernaut 组的成员?-- 是/是
cat /etc/group redis:x:1002: juggernaut:x:113: groups juggernaut juggernaut : juggernaut
运行 sudo juggernaut 启动服务器,但我希望它继续在后台进程/服务中运行。
我现在陷入困境。有人能帮助我吗?
编辑
fizzy@li136-198:~$ sudo ls -l /usr/bin/juggernaut
ls: cannot access /usr/bin/juggernaut: No such file or directory
fizzy@li136-198:~$ sudo ls -l /usr/local/bin/juggernaut
lrwxrwxrwx 1 root root 40 Sep 20 02:48 /usr/local/bin/juggernaut -> ../lib/node_modules/juggernaut/server.js
我尝试改变
DAEMON=/usr/bin/juggernaut
到
DAEMON=/usr/local/bin/juggernaut
之后我尝试使用
sudo /etc/init.d/juggernaut start
服务器已启动但不是作为后台进程/服务。
附言:请有人为这个问题创建适当的标签。
答案1
默认情况下,该juggernaut
程序似乎不会将自身作为守护进程,并且 initscript 未提供使其这样做的参数。检查输出中jaggernaut --help
有关守护进程模式的选项,如果找到它们,请修改 initscript 以提供这些选项。例如:
OPTIONS="--daemonize"
...
if start-stop-daemon --start --quiet --umask 007 --pidfile $PIDFILE --chuid juggernaut:juggernaut --exec $DAEMON -- $OPTIONS
如果没有任何选项,您将不得不start-stop-daemon
执行守护进程(由于各种原因,这并不理想)。为此,请添加--background
和可能的--make-pidfile
选项:
if start-stop-daemon --start --quiet --umask 007 --pidfile $PIDFILE --chuid juggernaut:juggernaut --background --make-pidfile --exec $DAEMON