[Unit]
Description= #(Whatever String You Want)
After= #(Any service that should be started before, ex. network.target)
[Service]
ExecStart= #(Key in the absolute path of app.js)
Restart=always #(This will ensure the automatic restart)
User= #(TBD depending on your system & wishes)
Group= #(TBD depending on your system & wishes)
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory= # (Absolute path of app.js working dir.)
[Install]
WantedBy= # multi-user.target or default.target according to your needs
快速而肮脏的方式:如果使用 bash,那么一个简单的 bash 脚本怎么样:
顺便说一句,这是错误的做法,因为您没有考虑任务退出的原因,并且可能有很好的理由不重新启动它。不是说它也可能在启动时崩溃,被 oomkilled…
在系统化的 linux 下更规范的方式:(建议作为 @Kusulananda 说明的一部分,并受The Ultimate Guide to deploy your node app on Linux 的启发):
假设 app.js 以 #!/usr/bin/env 节点声明开头,并且设置了 app.js x 文件模式位,
设计一个新服务:如果需要,在 /etc/systemd/system 目录中创建一个 .service 文件,如果您的用户只需要,则在 ~/.config/systemd/user 目录中创建一个文件,如下所示:
您现在应该可以启动它了:
systemctl --user start service_filename