加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ubuntu编写开机自启动shell脚本

(2012-08-12 13:45:00)
标签:

it

分类: ubuntu
1、首先编写一个简单的shell脚本
vim test.sh(不习惯使用vim可以使用nano)
进入vim后按i键,然后输入(#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序。
#!/bin/bash 
echo "Hello world!"

filename=`date "+%Y%m%d"` 
echo $filename
然后先Esc再shift+z两次(保存)
在命令行输入:chmod +x test.sh(赋予执行权限)
运行./test.sh

查看命令的路径:which ls(假设查看ls命令的路径)
#后面的内容表示注释,要养成写注释的良好习惯
更多shell编程知识         shell编程简介


2、设置脚本开机自启动

只需编辑/etc/init.d/rc.local文件,在最后加上你的脚本即可。

比如:我已经编写了一个脚本apk.sh,存放在/home/apk/ 下面

在Ubuntu终端输入 sudo  nano  /etc/init.d/rc.local编辑文件,在结尾出加入:

/home/apk/shell.sh 即可开机自动加载脚本。

--------------------或者使用下面的方法------------------
1) 将你的启动脚本复制到 /etc/init.d目录下
 sudo  cp  test.sh  /etc/init.d/
   
2) 执行如下命令将脚本放到启动脚本中去:
$ cd /etc/init.d
$ sudo chmod 755 /etc/init.d/test.sh
$ sudo update-rc.d test.sh defaults 95
注:其中数字95是脚本启动的顺序号,按照自己的需要相应修改即可。在你有多个启动脚本,而它们之间又有先后启动的依赖关系时你就知道这个数字的具体作用了。该命令的输出信息参考如下:

update-rc.d: warning: /etc/init.d/test missing LSB information
update-rc.d: see
 
卸载启动脚本的方法:
$ cd /etc/init.d
 
$ sudo update-rc.d -f test.sh remove

注意事项:

开始我使用forever命令写了一个脚本,如下:
      #!/usr/local/bin/forever
    forever start /home/apk/apkAnalysis/app.js
可是不论我使用什么方法它都启动不起来,后来发现它少了一个sudo权限:
    #!/usr/local/bin/forever
    sudo forever start /home/apk/apkAnalysis/app.js
所以在配置开机启动的时候一定要注意sudo的使用

查看系统启动的日志:cat /var/log/boot.log 
开始是一直都起不来,看了下日志,发现文件不存在;登录之后查看文件是存在的,可能是执行启动脚本的时候用户目录还没有mount上来
http://s4/mw690/abba9c1dgd000279b0f93&690
然后把工程放到srv目录下面就可以开机自启动了。
改一下权限sudo chmod 775 /srv/

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有