linux设置开机自启动脚本的最佳方式

linux设置开机自启动脚本的最佳方式,第1张

最简单粗暴的方式直接在脚本 /etc/rc.d/rc.local (和 /etc/rc.local 是同一个文件,软链)末尾添加自己的 脚本

然后,增加脚本执行权限

第二种方式是在crontab中设置

也可以设置每次登录自动执行脚本,在 /etc/profile.d/ 目录下新建sh脚本,

/etc/profile 会遍历 /etc/profile.d/*.sh

另外,几个脚本的区别:

(1) /etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。

(2) /etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取(即每次新开一个终端,都会执行bashrc)。

(3) ~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。默认情况下,设置一些环境变量,执行用户的.bashrc文件。

(4) ~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。

(5) ~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是”父子”关系。

(6) ~/.bash_profile: 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。

这是一个最简单的方法,编辑“/etc/rc.local”,把启动程序的shell命令输入进去即可(要输入命令的全路径),类似于windows下的“启动”。

使用命令 vi /etc/rc.local

然后在文件最后一行添加要执行程序的全路径。

例如,每次开机时要执行一个haha.sh,这个脚本放在/opt下面,那就可以在“/etc/rc.local”中加一行“/opt/./haha.sh”,或者两行“cd /opt”和“./haha.sh”。

二、crontab(类似于windows的任务计划服务)

通过crontab可以设定程序的执行时间表,例如让程序在每天的8点,或者每个星期一的10点执行一次。

crontab -l 列出时间表;

crontab -e编辑时间表;

crontab -d删除时间表;

“-l”没什么可说的,就是一个查看而已;

“-e”是编辑,和vi没什么差别(其实就是用vi编辑一个特定文件);

“-d”基本不用,因为它把该用户所有的时间表都删除了,一般都是用“-e”编辑把不要了的时间表逐行删除;

Linux配置开机自启动执行脚本的方法有很多,这里分享两种方法,分别是修改/etc/rc.local方法和chkconfig管理设置的方法,均可实现Linux配置开机自启动执行脚本的功能!

设置test.sh为开机要启动的脚本

[root@oldboy scripts]# vim /server/scripts/test.sh

[root@oldboy scripts]# cat /server/scripts/ test.sh

#!/bin/bash

/bin/echo $(/bin/date +%F_%T) >>/tmp/ test.log

方法一:修改/etc/rc.local

[root@oldboy ~]# ll /etc/rc.local

lrwxrwxrwx. 1 root root 13 Mar 30 10:50 /etc/rc.local ->rc.d/rc.local

修改/etc/rc.local文件

[root@oldboy scripts]# tail -n 1 /etc/rc.local

/bin/bash /server/scripts/test.sh >/dev/null 2>/dev/null

重启系统,查看结果

[root@oldboy ~]# cat /tmp/test.log

2018-03-30_12:00:10

方法二:chkconfig管理

删除掉方法一的配置

[root@oldboy ~]# vim /etc/init.d/test

#!/bin/bash

# chkconfig: 3 88 88

/bin/bash /server/scripts/test.sh >/dev/null 2>/dev/null

[root@oldboy ~]# chmod +x /etc/init.d/test

添加到chkconfig,开机自启动

[root@oldboy ~]# chkconfig --add test

[root@oldboy ~]# chkconfig --list test

test 0:off 1:off 2:off 3:on 4:off 5:off 6:off

重启系统,查看结果

[root@oldboy ~]# cat /tmp/test.log

2018-03-30_12:00:10

2018-03-30_12:33:20

*** 作成功

关闭开机启动

[root@oldboy ~]# chkconfig test off

[root@oldboy ~]# chkconfig --list test

test 0:off 1:off 2:off 3:off 4:off 5:off 6:off

从chkconfig管理中删除test

[root@oldboy ~]# chkconfig --list test

test 0:off 1:off 2:off 3:off 4:off 5:off 6:off

[root@oldboy ~]# chkconfig --del test

[root@oldboy ~]# chkconfig --list test

service test supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add test')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11620886.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存