Linux自启动程序

1,823 阅读3分钟

  Linux系统下自启动程序的设置与管理主要有两种方式:图形管理和配置文件管理,本文主要记录配置文件管理的使用方式。

1、开机启动时自动运行程序

  Linux加载后,将会初始化硬件和设备驱动,然后运行第一个进程init。init会根据配置文件继续启动其他进程,修改在以下路径下的脚本文件,可以使init自动启动其他程序。

/etc/rc
/etc/rc.d
/etc/rc?.d

    例如:标记/etc/rc.local文件(该文件通常是系统最后启动的脚本,在较新版的deepin中,默认不包含该文件),在文件最末加上一行"xinitstartx ,可以在开机启动后直接进入X-Window。

  以下介绍两种方式在开机启动时自动运行程序

(1)使用systemd执行rc.local

  在使用了systemd作为启动器的系统(如较新版的deepin)中,先在/etc路径下使用管理员权限创建一个名为rc.local的纯文本文件,并写入以下内容:

#!/bin/bash
# rc.local config file created by use

将需要执行的代码写在这里

exit 0

  保存后,需要执行以下代码给文件赋予可执行权限:

sudo chmod +x /etc/rc.local

  下次重启后,systemd就会自动执行rc.local里面的命令了。

(2)在~/.config/autostart路径下添加自启动命令

  以代理工具XX-Net为例,假定其启动脚本位于~/Documents/XX-Net-3.3.1/start。在~/.config/autostart路径下添加 "XX-Net.desktop" 文件,其内容如下:

[Desktop Entry]
Type=Application
Exec="~/Documents/XX-Net-3.3.1/start"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_IN]=XX-Net
Name=XX-Net
Comment[en_IN]=XX-Net
Comment=XX-Net

  下次系统启动时就会执行Exec所指定的命令了。


2、登录时自动运行程序

  用户登录时,bash先自动执行系统管理员建立的全局登录脚本:

/etc/profile

  然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:

/.bash_profile
/.bash_login
/.profile

  但只执行最先找到的一个,因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行程序。


3、退出登录时自动运行程序

  退出登录时,bash自动执行个人的退出登录脚本

/.bash_logout

  因此,只需根据实际需要在上述文件中加入命令就可以实现用户退出登录时自动运行程序


4、定期自动运行程序

    Linux有一个称为crond的守护程序,主要功能是周期性地检查/var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。

  用户可以通过crontab命令来建立、修改、删除这些命令文件。

  例如:建立文件crondFile,内容为"00 9 23 Jan HappyBirthday",运行crontab cronFile后,每当1月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> (Ctrl+I)
Job 1 at 2000-11-09 12:00

  执行的内容为:2000-11-09 12:00的时候自动发一标题为"Have a lunch",内容为plan.txt文件内容的邮件给Roger。


相关链接

Deepin自启动程序