如何在启动时运行一个shell脚本
在一个亚马逊Linux实例中,我有两个名为start_my_app
和stop_my_app
脚本, stop_my_app
将永远启动并停止(然后运行我的node.js应用程序)。 我使用这些脚本来手动启动和停止我的节点应用程序。 到现在为止还挺好。
我的问题:我也想设置它, start_my_app
在系统启动时运行start_my_app
。 我知道我需要在init.d
添加一个文件,并且我知道如何将它链接到rc.d
的正确目录,但无法弄清楚我需要放入init.d
文件中的内容。 我认为它应该只是一行,例如, start_my_app
,但那不适合我。
在放在/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
为此设置一个crontab
#crontab -e
@reboot /home/user/test.sh
每次启动后它都会运行测试脚本。
一个简单的方法是在/etc/rc.local
添加一行:
/PATH/TO/MY_APP &
或者如果你想以root身份运行该命令:
su - USER_FOOBAR -c /PATH/TO/MY_APP &
(尾随符号背景进程并允许rc.local继续执行)
如果你想要一个完整的初始化脚本,debian distro有一个模板文件,所以:
cp /etc/init.d/skeleton /etc/init.d/your_app
并适应一下。
链接地址: http://www.djcxy.com/p/90029.html