我创建了脚本文件 -
#!/bin/sh
echo "my application is here"
./helloworld # helloworld is our application
init.d
chmod +x /etc/init.d/vcc_app
(vcc_app是我创建的脚本的名称)ln -s /etc/init.d/vcc_app /etc/rc.d/vcc_app
(rc.d是运行级别目录)但是当我重启电路板时,我的应用程序不会自动执行。任何人都可以帮助我吗?
答案 0 :(得分:1)
/etc/init.d
中的脚本需要LSB-compliant。
如果您只是想在引导过程结束时自动运行命令,请尝试将它们放在/etc/rc.local
中。
答案 1 :(得分:1)
并非所有Linux系统都使用相同的init
守护程序(ubuntu使用upstart:http://upstart.ubuntu.com/getting-started.html),但它们都在脚本中使用start
和stop
函数。其他常见功能是status
和restart
,但同样,并没有真正的全面标准。例如:
!#/bin/sh
start () {
echo "application started";
./helloworld # you should use an absolute path here instead of ./
}
stop () {
}
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo "Usage start|stop";
esac
exit $?
最后一位是基于第一个命令行arg的开关,因为init将调用脚本myrcscript start
。
为了使用stop()
(以及通常也很有用的restart()
),您需要保留或能够获得start()
启动的流程的pid;有时这是通过/ tmp中的一个小“pid文件”(包含pid的文本文件,例如,在start()中创建的 /tmp/myscript.pid )来完成的。
Ubuntu上使用的“upstart”init守护进程有自己的特定功能,但除非你需要使用它们,否则只需保持停止/启动最小化,它(可能)可以在任何地方工作。