linux,ubuntu添加开机自动运行程序方法autorun
1. 开机自动运行 #
Linux 加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程 init。init 根据配置
文件继续引导过程,启动其它进程。通常情况下,修改放置在
/etc/rc 或
/etc/rc.d 或
/etc/rc?.d
目录下的脚本文件,可以使 init 自动启动其它程序。例如:编辑
/etc/rc.d/rc.local 文件(该文件通常是系统最后启动的脚本),
在文件最末加上一行“xinit”或“startx”,可以在开机启动后直接进入 X-Window。
2. 登录自动运行 #
用户登录时,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 命令来建立、修改、删除这些命令文件。
sudo crontab -e
根据文件最后一行提示:m h dom mon dow command,
填写 5+1 项内容: minute (of hour), hour (of day), day of month, day of week (0~6, sun=0), 执行的命令。
5 个数字标识时间,*
表示任意(所有).
示例:
*/n * * * * service myService restart
表示每 n 分钟重启一次 myService。echo '00 9 23 Jan * myExec' > myCronFile; crontab myCronFile
每当元月 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.
6. 开机自动运行 桌面应用程序 #
有些应用程序如一些桌面日历,ToDoList 程序等等,是需要在桌面完全载入之后再运行才有效的!所以 1,2 的方法就行不通了。大家用过 windows 应该有印象,在“开始”-“程序”-“启动” 这个位置如果放置有其他快捷方式,则在载入桌面后会自动运行。
Ubuntu 下也有这样的文件夹,它的位置是 ~/.config/autostart/ ,其中保存的文件即为 linux 下的快捷方式文件,文件名如 RainLendar2.desktop(也就是类似于在“桌面”上点击右键-“创建启动器”所生成的文件)。用 vi 打开,发现其文件格式如下:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Name=Rainlendar2 #应用程序名字
Type=Application #程序类型
Exec=/usr/bin/rainlendar2 #可运行应用程序的路径
X-GNOME-Autostart-enabled=true #是否在载入桌面后自动运行
所以接下来就很简单了。
方法一、直接新建一个如上格式的.desktop 文件,修改程序名和运行路径,保存即可。(本人 Ubuntu 10.10 版本测试通过)
方法二、直接把桌面上已经建好的“启动器”(即快捷方式)复制进去即可。但要注意这个“启动器”的类型一定要为“应用程序 ”或者“位置 ”!实测如果是“终端应用程序”则无效。如果复制进去的是链接文件也无效。