我的机器是Ubuntu 16.04。我想在每次机器启动时启动我的node.js应用程序。根据这个邮政关于自动启动服务。我尝试通过执行以下操作来提供服务:
1)我创建了一个脚本来使用节点的forever
模块启动节点应用程序。
#!/bin/bash
echo "Starting App"
forever -a start /opt/app/app.js
echo "App started"
2)我给这个脚本命名startApp.sh
并把这个脚本放在里面/etc/init.d/文件夹。
3)我运行了命令update-rc.d startApp defaults
但我得到了错误update-rc.d:错误:initscript不存在:/etc/init.d/startApp
我做错了什么?
答案1
有多种方法可以实现这一目标 颗粒物 您可以使用 PM2,它为您提供创建启动脚本来启动预期或意外的计算机重新启动。
http://pm2.keymetrics.io/docs/usage/startup/
码头工人我更喜欢创建 Dockerfile 并使用 --restart=always 标签运行它
如果您想继续执行 shell 脚本 然后使用unix的crontab它非常容易使用&你可以在几分钟内配置
编辑 crontab 运行以下命令,将“USER”替换为节点进程所需的运行时用户。如果您选择除您自己之外的其他用户,则必须使用 sudo 运行此命令。
$ crontab -u 用户 -e
进入编辑器后,添加以下行:
@reboot /usr/local/bin/forever start /your/path/to/your/index.js else
@reboot sh /your/path/to/your/startApp.sh
保存并再次通过#1的检查命令确认文件已保存
注意:在我看来,您应该使用 crontab 文件中的完整路径来防止出现问题
你可以参考这个网址参考 Ubuntu Cron 操作指南