node.js - Upstart node.js 工作目录

标签 node.js relative-path upstart working-directory

使用 Upstart 启动 Node.js,当尝试访问 Node.js 中的文件时,如果不使用完整路径,它将无法访问它们。我需要它来使用工作目录。

start on startup
stop on shutdown

script
        echo $$ > /var/run/mynodeapp.pid
        exec sudo -u mynodeapp node server.js >> /var/log/mynodeapp.sys.log 2>&1
end script

pre-start script
        echo "Starting" >> /var/log/mynodeapp.sys.log
end script

pre-stop script
        rm /var/run/mynodeapp.pid
        echo "Stopping" >> /var/log/mynodeapp.sys.log
end script

最佳答案

解决方案是在脚本中更改目录。在我的例子中,用户是 mynodeapp, Node 文件在用户目录 (/home/mynodeapp/) 中。

script
        chdir /home/mynodeapp/
        echo $$ > /var/run/mynodeapp.pid
        exec sudo -u mynodeapp node server.js >> /var/log/mynodeapp.sys.log 2>&1
end script

我还没有弄清楚 $$ 在 echo 行或 2>&1 上的含义。如果他们知道的话,也许有人可以插话!

关于node.js - Upstart node.js 工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14823972/

相关文章:

linux - 如何在 Ubuntu 中升级应用程序后更新 product.conf 文件

linux - 为什么我的 Upstart 服务在重启后无法启动?

node.js - "Header content contains invalid characters"将分段上传部分传输到新请求时出错

c++ - 在 Mac 和 Linux 上将相对路径转换为绝对路径

java - 我如何相对引用 Eclipse 中的库?

python - 从导入的函数打开文件

ubuntu - Airflow upstart 脚本在启动/运行状态后立即进入停止/等待状态

javascript - 如何解析具有类似 XML 结构的文件,但在内容旁边带有自闭合标签(而不是包含内容)

sql - 按belongsToMany关系字段过滤

node.js - Firestore promise 在退回产品之前等待产品详细信息