2

我正在尝试为我的 ubuntu 机器编写一个新贵脚本,它是 8.04 版“Hardy”。我已按照此站点上的说明进行操作:node.js 的新贵,但这些说明似乎适用于当前版本的 ubuntu。

我注意到 /etc/init 目录在我的机器上不存在,首先我尝试将脚本放在 /etc/init.d 目录中,然后我创建了 /etc/init 目录并将其放置在那里。

我将在下面发布我的新贵脚本(与上面的网站基本相同,但路径有所更改),但是当我运行 start jobname 时,我只收到错误“start: Unknown job: jobname”。因此,我将脚本更改为精简版,发布在下面,但我仍然得到相同的结果。

目前,我正在使用“nohup”命令来运行我的节点服务器,但我想要一个更持久的解决方案。

请问,有什么帮助吗?

脚本 1:

description "node.js chat server"
author      "iandev ith3"

# used to be: start on startup
# until we found some mounts weren't ready yet while booting:
start on started mountall
stop on shutdown

# Automatically Respawn:
respawn
respawn limit 99 5

script
    # Not sure why $HOME is needed, but we found that it is:
    export HOME="/root"

    exec /root/local/node/bin/node /home/ian/chat.js >> /var/log/node.log 2>&1
end script

post-start script
   # optionally put a script here that will notifiy you node has (re)started
   # /root/bin/hoptoad.sh "node.js has started!"
end script

脚本 2:

description "node.js chat server"
author      "iandev ith3"

script
    exec /root/local/node/bin/node /home/ian/chat.js >> /var/log/node.log 2>&1
end script
4

3 回答 3

3

只需使用永远。https://github.com/indexzero/永远

于 2011-09-25T02:18:03.193 回答
1

通过查看您提供的网站,我会说 /etc/init 只是一个错字,它应该是 /etc/init.d/。您可能需要检查的一些事项:

  • 脚本上的可执行标志。大多数版本的 Ubuntu 可执行文件在从命令行运行“ls”时显示为绿色。如果您想检查您的文件是否可执行,请从命令行运行“ls -l /etc/init.d/YOUR_SCRIPT”。您将看到如下内容: -rwxr-xr-x 1 root root 1342 2010-09-16 10:13 YOUR_SCRIPT x 表示它是可执行的。要设置可执行标志(如果未设置),请运行 chmod u+x YOUR_SCRIPT

  • 我很确定对于旧版本的 ubuntu,您需要将脚本放在 /etc/rc.d/rc3.d 或 /etc/rc3.d 中。linux 所做的是通过 rc0.d 运行到 rc5.d 并执行其中的每个脚本。从它的样子来看,ubuntu 正在从这个转向更简单的东西,所以如果你有 rc 目录,你可能需要稍微编辑你的脚本。

无论如何,我认为我在这里有点过于复杂了。检查您的可执行标志,如果您有 rc 目录,我们将从那里继续。

于 2011-09-25T02:44:02.570 回答
1

使用 sudo 启动进程可能不是最好的方法,但这是我在本地电脑上设置的内容:

#!upstart
description "node.js server"
author      "alessio"

start on startup
stop on shutdown

script
    export HOME="/ubuntu"

    exec sudo -u ubuntu /usr/bin/node /home/ubuntu/www/test.js 2>&1 >> /var/log/node.log
end script

希望这可以帮助。

于 2011-11-04T15:55:07.277 回答