我有node.js脚本,可以让我的MongoDB数据库和CRM数据库实时同步。
我想在我的ubuntu服务器上运行此脚本作为后台任务,我找到了this解决方案,但它对我不起作用。有没有其他方法可以达到这个目标?
答案 0 :(得分:4)
如果您只是想启动应用,可以使用Forever或PM2来运行并在崩溃时自动重启。 但这不是后台任务。
对于在服务器重启时启动的后台任务,您链接的帖子是正确的方法。如果它不起作用,也许这篇文章会对你有所帮助。这来自官方快递网站:https://expressjs.com/en/advanced/pm.html#systemd
基本上你创建
[Unit]
Description="My Express App"
[Service]
ExecStart=/usr/bin/node server.js
WorkingDirectory=/project/absolute/path
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=MyApp
Environment=NODE_ENV=production PORT=8080
[Install]
WantedBy=multi-user.target
进入/etc/systemd/system/my-app.service
文件,然后使用systemctl
启动它:
systemctl enable my-app.service
systemctl start my-app.service
现在假设您的Linux发行版与systemctl一起使用。如果您的Linux发行版与upstart或其他东西一起使用,那么您需要对该流程管理器的指令进行谷歌搜索。