第一种方法
#!/bin/bash
# command content
exit 0
2,设置权限
sudo chmod 755 new_service.sh
3,把脚本放置到启动目录下
sudo mv new_service.sh /etc/init.d/
4,将脚本添加到启动脚本
执行如下指令,在这里90表明一个优先级,越高表示执行的越晚
cd /etc/init.d/
sudo update-rc.d new_service.sh defaults 90
移除Ubuntu开机脚本
sudo update-rc.d -f new_service.sh remove
第二种方法
rc.local脚本
rc.local脚本是一个ubuntu开机后会自动执行的脚本,我们可以在该脚本内添加命令行指令。该脚本位于/etc/路径下,需要root权限才能修改。
该脚本具体格式如下:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
exit 0
注意: 一定要将命令添加在 exit 0之前
Ubuntu添加开机自动启动程序方法
1. 开机启动时自动运行程序
Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置
文件继续引导过程,启动其它进程。通常情况下,修改放置在
/etc/rc或
/etc/rc.d 或
/etc/rc?.d
目录下的脚本文件,可以使init自动启动其它程序。例如:编辑
/etc/rc.d/rc.local 文件(该文件通常是系统最后启动的脚本),
在文件最末加上一行“xinit”或“startx”,可以在开机启动后直接进入X-Window。
2. 登录时自动运行程序
(1) 用户登录时,bash先自动执行系统管理员建立的全局登录script :
/ect/profile
然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:
/.bash_profile、
/.bash_login、
/.profile,
但只执行最先找到的一个。因此,只需根据实际需要在上述文件中加入命令就可以实
现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat)。
3. 退出登录时自动运行程序
退出登录时,bash自动执行个人的退出登录脚本
/.bash_logout。
例如,在/.bash_logout中加入命令“tar -cvzf c.source.tgz *.c”,则在每次退出
登录时自动执行 “tar” 命令备份 *.c 文件。
4. 定期自动运行程序
Linux有一个称为crond的守护程序,主要功能是周期性地检查 /var/spool/cron目录
下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。用户可以通过
crontab 命令来建立、修改、删除这些命令文件。
例如,建立文件crondFile,内容为“00 9 23 Jan * HappyBirthday”,运行“crontab
cronFile”命令后,每当元月23日上午9:00系统自动执行“HappyBirthday”的程序(“*
”表示不管当天是星期几)。
5. 定时自动运行程序一次
定时执行命令at 与crond 类似(但它只执行一次):命令在给定的时间执行,但不自
动重复。at命令的一般格式为:at [ -f file ] time ,在指定的时间执行file文件
中所给出的所有命令。也可直接从键盘输入命令:
$ at 12:00
at>mailto Roger -s ″Have a lunch″ < plan.txt
at>Ctr-D
Job 1 at 2000-11-09 12:00
2000-11-09 12:00时候自动发一标题为“Have a lunch”,内容为plan.txt文件内容
的邮件给Roger.
ubuntu 自添加开机启动程序
ubuntu (我的是 9.10)的开机启动会和 redhat suse 这些发行版会稍有差别,比如默认情况下没有 /etc/inittab 的配置文件,redhat 发行版在启动级别 3 上是文本模式登录,而 ubuntu 的启动级别2~5 都是一样的启动。现在,添加一个自定义的可执行文件或脚本,使其在开机启动时执行。
以一个脚本为例,脚本的内容很简单 :
引用
#! /bin/sh
echo "hello start up script!" > /home/beyes/mystart.txt
exit 0
这个脚本的作用只是在我的家目录里建立一个文本文件,里面的内容就是 echo 后的内容hello start up script!。
编辑好这个脚本后,给其赋予相应的可执行文件,为了方便,就 chmod 777 /etc/init.d/mystart
接着在 /etc/rc5.d 这个目录下做一个软链接: ln -s /etc/init.d/mystart /etc/rc5.d/S99mystart
那么,这个脚本开机启动生效了么?经过重启后,并没有发现在 /home/beyes 目录下生成 mystart.txt 文件。
使用 sysv-rc-conf 配置一下启动服务:
上图,在第 2 运行级别也配置了让 mystart 启动。这个 sysv-rc-conf 会读取 /etc/init.d 里的文件以及 rcx.d (x为运行级别)下的软连接等信息。关于更多管理启动项的更多信息见:
http://www.groad.net/bbs/read.php?tid-1392.html
配置完后,重启。再到 /home/beyes 里查看,生成了 mystart.txt 文件,里面也有相应的内容。从这里,也看到了 ubuntu 默认的启动运行级别为 2 。另外,在 /etc/rc2.d 目录下,也发现了由 sysv-rc-conf 生成的软连接: S99mystart
ubuntu开机自动运行程序
1.编写shell脚本
gedit /etc/init.d/aa
#!/bin/bash
mplayer /home/aa.avi -fs -vo fbdev -vf scale=800:600 (fs全屏,vo进入桌面前使用, scale设置画面大小)
2. chmod 755 /etc/init.d/aa
3. ubuntu默认启动级别为2加载的脚本在/etc/rc2.d/
ln -s /etc/init.d/aa /etc/rc2.d/s99aa (s为开始执行99为执行顺序aa为文件名)
本贴来自天极网群乐社区--http://q.yesky.com/group/review-17826808.html
每当我学习一个新的东西得时候都是会 遇到一些错误,但是我会非常努力的去解决它,今天这个自启动应用程序花了我两个小时的时间才解决了。所以说遇到问题的时候要去思考、分析。下面我就来谈谈linux上电自启动应用程序,以及我遇到的问题。希望能给你带来一些启发。
我这里有一个项目是用鼠标和触摸屏代表输入设备,LCD代表显示设备,一个简易的数码相框,当我制作成功后手动执行一些命令是能够正常启动应用程序的,当我写成一个脚本后程序就读取错误了,描述如下:
我在/usr/etc/目录下建了一个test.sh 脚本程序,内容如下:(记得加上可执行权限)
#!/bin/sh
cd /mnt
/sbin/insmod s3c_ts.ko /* 加载触摸屏驱动 */
./digitpic MSYH.TTF & /* 应用程序的启动 */
在/etc/init.d/rcS 最后一行添加exec /usr/etc/test.sh
但是程序上电后启动打印触摸数据读取错误,打印的信息是从digitpic这个应用程序中打印出来的。但是我用ts_calibrate 命令来测试 触摸屏驱动程序确实是成功加载了的,这里就让我感觉很意外,后来我找了各种方法都没有成功,最后我定位打印信息去看,才发现是配置触摸屏错误,原来才是我们没有配置触摸屏,但是我们确实在/etc/profile中配置了触摸屏的,内容如下:
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/lib/ts/
export TSLIB_CONSOLEDEVICE=/dev/tty1
export TSLIB_FBDEVICE=/dev/fb0
经过我对Linux文件启动顺序才发现/etc/init.d/rcS 文件比/etc/profile 文件先执行,在这里终于把错误找到了,当我们运行/etc/init.d/rcS这个文件里面的test.sh脚本程序的时候,我们还没有配置触摸屏驱动程序,但是我们已经在使用这个触摸屏驱动程序了,所以这个触摸屏驱动的配置应该放在这个脚本之前去执行,所以这里问题得到了完美的解决。
这里送给朋友们几句话,遇到问题一定要自己多思考,自己想办法去解决。有些人就得说了好浪费时间,我在这里说一下,一个程序员的习惯很重要,如果你一心是想在网上找代码,你绝对成为不了高手,只有自己动手实践了才是真理,很多网友喜欢在群里面或者论坛上发一些跪求代码,求大神解答啊之类的话,很多网友连自己都没有定位到自己的问题所在,还找别人去给你解答,你认为这个可能吗?
#!/bin/bash
echo "Hello World!"
pwd
ulimit -c unlimited
CUR_DIR=/home/ubuntu/cmake_project/camera/build
cd /home/ubuntu/cmake_project/camera/build
sleep 15
ls /dev/video*
./myCapCamera