在ubuntu中自动启动应用程序

时间:2012-05-25 09:26:00

标签: linux embedded ubuntu-10.04 init rc

我创建了脚本文件 -

#!/bin/sh
echo "my application is here"
./helloworld  # helloworld is our application
  1. 创建脚本文件后,我将其复制到init.d
  2. 我发出命令chmod +x /etc/init.d/vcc_app(vcc_app是我创建的脚本的名称)
  3. 然后我给出了命令ln -s /etc/init.d/vcc_app /etc/rc.d/vcc_app(rc.d是运行级别目录)
  4. 但是当我重启电路板时,我的应用程序不会自动执行。任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

/etc/init.d中的脚本需要LSB-compliant

如果您只是想在引导过程结束时自动运行命令,请尝试将它们放在/etc/rc.local中。

答案 1 :(得分:1)

并非所有Linux系统都使用相同的init守护程序(ubuntu使用upstart:http://upstart.ubuntu.com/getting-started.html),但它们都在脚本中使用startstop函数。其他常见功能是statusrestart,但同样,并没有真正的全面标准。例如:

!#/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守护进程有自己的特定功能,但除非你需要使用它们,否则只需保持停止/启动最小化,它(可能)可以在任何地方工作。