在Amazon S3 Linux实例上,我有两个名为的脚本start_my_app,stop_my_app它们 永远 启动和停止(依次运行Node.js应用程序)。我使用这些脚本手动启动和停止我的Node.js应用程序。到目前为止,一切都很好。
start_my_app
stop_my_app
我的问题:我还想将其设置start_my_app为在系统启动时运行。我知道我需要在其中添加文件,init.d并且知道如何将其符号链接到其中的适当目录rc.d,但是我无法弄清楚放置在其中的文件中实际需要什么init.d。我认为这应该只是一条线,例如start_my_app,,但这对我没有用。
init.d
rc.d
在您放入的文件中,/etc/init.d/您必须使用以下命令将其设置为可执行文件:
/etc/init.d/
chmod +x /etc/init.d/start_my_app
感谢@meetamit,如果此命令无法运行,则必须创建一个符号链接到 /etc/rc.d/
/etc/rc.d/
ln -s /etc/init.d/start_my_app /etc/rc.d/
请注意,在最新的Debian上,这将不起作用,因为您的脚本必须符合LSB(至少提供以下操作:启动,停止,重新启动,强制重载和状态): https://wiki.debian .org / LSBInitScripts
需要注意的是,您应该放置脚本的绝对路径而不是相对路径,这可能会解决意外的问题:
/var/myscripts/start_my_app
并且不要忘记在该文件之上添加:
#!/bin/sh