网上有很多关于如何让Linux自动运行本身编写的脚本或者程序的方法,可是大多数都是把命令写到/etc/rc.local里,这样虽然可以实现随机运行,可是并不够灵活。不能像mysql,apache等服务同样可以使用service命令或者调用init.d下的脚本启动、关闭或者重启进程。例如, service mysql restart service apache2 stop 或者 /etc/init.d/mysql restart /etc/init.d/apache2 stop 由于不一样的Linux发行版本,对后台服务的处理方式不大同样,如redhat使用chkconfig来管理开机程序。因此下面的方法以debian类系统为例,如何写一个简单的开机启动脚本。因此,此方法适用于raspbian pi的系统。 以svn为例: 1.制做开机启动脚本svn_serve ``` #!/bin/sh ### BEGIN INIT INFO # Provides: svn_serve # Required-Start: $remote_fs # Required-Stop: $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start or stop the HTTP Proxy. ### END INIT INFO case $1 in start) svnserve -d -r /home/pi/svn_repository ;; stop) killall svnserve ;; *) echo "Usage: $0 (start|stop)" ;; esac ``` 若是不加上面的注释,执行下面步骤3时,update-rc.d会报以下的警告信息 ``` update-rc.d: warning: /etc/init.d/proxy missing LSB information update-rc.d: see <http://wiki.debian.org/LSBInitScripts> ``` 2.启动关闭服务 ``` sudo service svn_serve start sudo service svn_serve stop ``` 3.让svn_serve开机启动 ``` sudo update-rc.d svn_serve defaults ``` 4.取消svn_serve的开机自动启动 ``` sudo update-rc.d -f svn_serve remove ```