用户可以在Linux系统配置自启动的程序,可以通过多种方式来实现。

1. rc.local

系统启动阶段,系统根据启动层级运行/etc/rcN.d目录下脚本(N为0~6之间的数字,表示启动层级),之后会调用rc.local脚本。该脚本的目录在/etc或/etc/rc.d目录中。通过修改这个脚本可以添加自启动的程序

        /etc/rc.local

该脚本在系统启动运行,在运行rcN.d初始化程序之后,在进入运行终端程序之前运行。如果这个文件不存在,可以新生成一个,并赋予可执行权限,系统重启后会自动启动这个脚本。

在systemd启动的Linux系统(如Ubuntu 18.04等),系统保留了rc.local的支持,在system目录下包含了rc.local.service,里面指向rc.local的执行。如果这个脚本没有自动启动,可以使能这个服务使之有效。参考https://blog.csdn.net/djstavaV/article/details/88166805

2. /etc/profile,~/.profile

用户登录阶段,系统会自动执行全局的配置脚本文件

        /etc/profile

然后执行用户目录下的配置文件

        ~/.bash_profile
        ~/.bash_login
        ~/.profile

执行三个文件中按顺序先找到的那个。所以用户可以在/etc/profile文件中,或者在用户目录配置文件(如~/.profile)中添加需要执行的脚本,就会在登录阶段自动执行。

3. ~/.bashrc

bash启动阶段,在用户登录后,每次打开一个shell窗口或者执行一个shell脚本,bash会自动先运行~/.bashrc文件。

        ~/.bashrc

所以也可以通过修改这个文件,加入用户自己需要执行的程序或配置。

.bashrc和.profile的区别在于,.profile仅在登录时运行一次,.bashrc则在每次运行shell时都会运行。而在.profile文件中默认也执行了.bashrc文件。

4. crontab

这种方式用以设置定时启动的任务。Linux系统在/etc/contab等文件维护定时启动的程序的信息,由cron进程读取配置文件,并定时启动文件中定义的进程。通过编辑/etc/crontab文件可以看到里面的文件内容大致如下

里面任务定义行的格式如下

        m      h     dom    mon   dow    user     command
        分     时      日       月      天     用户     执行的命令

比如第2行任务定义行,表示每天6点25分执行run-parts命令,执行/etc/cron.daily目录下的文件。其中时间设定上可以用*,/,逗号(,)等符号来进行选择。*表示所有选择,逗号(,)表示多选,/表示每隔多少单位选择,类似Word文件打印中的页面选择。具体可以参考https://blog.csdn.net/this_capslock/article/details/46633953

 cron进程从三个地方读取配置文件,即

        /etc/crontab
        /etc/cron.d目录下所有文件
        /var/spool/cron/用户名

其中/var/spool/cron下的配置文件是属于用户独有的。crontab -e命令执行的就是这个文件的编辑。通过设置上述位置的配置文件,可以设置定时启动的程序。

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐