一尘不染

如何在启动时运行Shell脚本

linux

Amazon S3
Linux实例上,我有两个名为的脚本start_my_appstop_my_app它们
永远
启动和停止(依次运行Node.js应用程序)。我使用这些脚本手动启动和停止我的Node.js应用程序。到目前为止,一切都很好。

我的问题:我还想将其设置start_my_app为在系统启动时运行。我知道我需要在其中添加文件,init.d并且知道如何将其符号链接到其中的适当目录rc.d,但是我无法弄清楚放置在其中的文件中实际需要什么init.d。我认为这应该只是一条线,例如start_my_app,,但这对我没有用。


阅读 667

收藏
2020-06-02

共1个答案

一尘不染

在您放入的文件中,/etc/init.d/您必须使用以下命令将其设置为可执行文件:

chmod +x /etc/init.d/start_my_app

感谢@meetamit,如果此命令无法运行,则必须创建一个符号链接到 /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
2020-06-02