成功的方法:1. 可先将脚本复制或者软连接到/etc/init.d/目录下,
2. update-rc.d xxx defaults NN命令(NN为启动顺序),将脚本添加到初始化执行的队列中去。
3. 注意如果脚本需要用到网络,则NN需设置一个比较大的数字,如99。
参考文献
ubuntu rc.local 为何不执行?
http://www.tuicool.com/articles/FVrQner Ubuntu下添加开机启动脚本
http://blog.csdn.net/hcx25909/article/details/9068497
问题1:待测试
系统默认的sh 指向的是 dash shell,而/etc/rc.local脚本中用的正是/bin/sh。
方法:
在终端执行 sudo dpkg-reconfigure dash,然后选择 no (推荐)
问题2:待测试
系统重启时,默认是以root用户运行的,在/etc/rc.d/rc.local中增加了一条shell程序,能以别的用户身份运行吗?
方法:
sudo -u francis /home/francis/start_server.sh
$ su - user1 //当执行这个命令的时候表示切换到user1用户,并且重新读取用户环境相关配置文件,具体的来说就是执行下用户家目录下.bash_profile和.bashrc文件,这个我们成为全切换
$ su user1 //执行这个命令的时候系统不读取以上两个文件,所以我们一般称它为半切换,这样切换过去之后,user1用户使用的依旧是此前用户的环境配置信息
$ sudo -u user1 //是不加载user1用户的配置文件的,因此权限与su user1相同
举例说明的话,如果在用户的配置文件中设置了umask,那么不同的切换方法对文件默认的权限时不同的