您的位置:首页 > 运维架构 > Shell

ubuntu编写开机自启动shell脚本

2013-01-04 21:33 561 查看

1、首先编写一个简单的shell脚本

vimtest.sh(不习惯使用vim可以使用nano)

进入vim后按i键,然后输入(#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序。)

#!/bin/bash
echo"Helloworld!"

filename=`date"+%Y%m%d"`
echo$filename
然后先Esc再shift+z两次(保存)

在命令行输入: chmod +x test.sh (赋予执行权限)

运行:./test.sh

查看命令的路径:whichls(假设查看ls命令的路径)

#后面的内容表示注释,要养成写注释的良好习惯

更多shell编程知识 shell编程简介

2、设置脚本开机自启动

方案一:

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

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

在Ubuntu终端输入: sudo nano /etc/init.d/rc.local
在结尾出加入: sh /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 defaults95

注:其中数字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.shremove


注意事项:

开始我使用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上来





然后把工程放到srv目录下面就可以开机自启动了。
改一下权限sudo
chmod 775 /srv/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: