使用chkconfig命令可以查看在不同启动级别下课自动启动的服务(或是程序),命令格式如下:

chkconfig --list

可能输出如下:

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

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

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

(0-6 为启动级别 ; 关闭/开启为相应级别下该服务的自动启动选项)

如果希望对自动启动选项做出改变,命令格式为:

chkconfig --level x name on/off

例如 chkconfig --level 2345 ntpd off

以上的命令可以查询系统可提供的服务,如果希望开机时、某用户登录时、定时、某用户退出时、某一时刻启动某一程序,可采用以下方法:



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

Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。

例如:编辑 /etc/rc.d/rc.local 文件,在文件最末加上一行"xinit"或"startx",可以在开机启动后直接进入X-Window;

又比如:你编写了一个可执行脚本test,放在/root/doc/test,可以在/etc/rc.d/rc.local 文件末尾添加一行/bin/bash /root/doc/test保存退出即可。

还比如:需要指定在某些启动级别(这里以在3、4、5三种启动级别下执行为例)下执行某个脚本testlevel,需要按照规范修改这个脚本,然后将其存放到/etc/rc.d/init.d下,然后可以有两种方式来添加自启动,其一是ln
-s /etc/rc.d/init.d/testlevel/etc/rc.d/rc3.d/testlevel
、ln -s /etc/rc.d/init.d/testlevel
/etc/rc.d/rc4.d/testlevel 、ln -s /etc/rc.d/init.d/testlevel
/etc/rc.d/rc5.d/testlevel ;其二是执行以下两条命令chkconfig --add testlevel; chkconfig --level 345

testlevel on

2.登录时自动运行程序

用户登录时,bash首先自动执行系统管理员建立的全局登录script :/etc/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 命令来建立、修改、删除这些命令文件。

例如,crontab -e命令建立文件crondFile,内容为"0 9 23 6 * HappyBirthday",每当6月23日上午9:00系统自动执行"HappyBirthday"的程序("*"表示不管当天是星期几)。

通过 crontab -l命令可查看已添加的定时执行程序。

5.定时自动运行程序一次

定时执行命令at 与crond 类似(但它只执行一次):命令在给定的时间执行,但不自动重复。at命令的一般格式为:at [ -f file ] time ,在指定的时间执行file文件中所给出的所有命令。

示例:任务在启动时运行mm:

方法:

1. 建立自启动脚本/etc/rc.d/init.d/mm,内容为:

#!/bin/bash

/usr/local/bin/*  (注:此内容替换为你想执行的命令)

设置文件的属性为可执行:

#chmod +x /etc/rc.d/init.d/mm

2. 查看计算机运行级别,在文件/etc/inittab里看到id:3:initdefault:,则此系统运行级别为3。

3. 到/etc/rc3.d目录下,把你要执行的可执行文件做一个软连接,而且在命名的时候要以大写S字母开头,S之后的数字大小代表执行顺序的先后,数字越大越靠后执行。

#ln -s /etc/rc.d/init.d/mm /etc/rc3.d/S100mm

#ln -s /etc/rc.d/init.d/mm /etc/rc0.d/K20mm

关机执行脚本:

1. vi /etc/init.d/mm

#!/bin/bash

ls >/dev/null 2>&1  (此处把ls替换为你自己的内容)

  注意:此处的顺序不能更改,否则达不到想要的效果。此时先将标准输出重定向到 /dev/null,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null。

2. chmod +x /etc/init.d/mm

3. ln -s /etc/init.d/mm  /etc/rc6.d/K01mm /var/lock/subsys/

4. 当你在关机时一切在悄无声息的进行着。

注:(1)本人在实验时,做关机运行脚本不成功解决方法。是在 /var/lock/subsys/中建立相同的文件mm,或拷贝或者直接软链接过来 ln -s /etc/init.d/mm /var/lock/subsys/   。

(2)若在字符界面下只设置开机启动,只在rc3.d目录下链接S100filename便可。

           如:ln -s /etc/init.d/filename  /etc/rc3.d/S100filename

linux添加开机启动项、登陆启动项、定时启动项、关机执行项等的方法的更多相关文章

  1. Linux 添加开机启动项的三种方法

    linux 添加开机启动项的三种方法. (1)编辑文件 /etc/rc.local 输入命令:vim /etc/rc.local 将出现类似如下的文本片段: #!/bin/sh## This scri ...

  2. linux添加开机自启动脚本示例详解

    linux下(以RedHat为范本)添加开机自启动脚本有两种方法,先来简单的; 一.在/etc/rc.local中添加如果不想将脚本粘来粘去,或创建链接什么的,则:step1. 先修改好脚本,使其所有 ...

  3. linux添加开机启动项的方法介绍

    使用chkconfig命令可以查看在不同启动级别下课自动启动的服务(或是程序),命令格式如下:chkconfig --list可能输出如下:openvpn 0:关闭 1:开启 ...... 6:关闭 ...

  4. Linux 添加开机启动项的两种方法

      1.编辑文件 /etc/rc.localvim /etc/rc.local #!/bin/sh## This script will be executed *after* all the oth ...

  5. Linux添加开机启动命令

    1.vi /etc/rc.d/rc.local 添加要启动的命令 如: service php-fpm start  //这样,开机就自动启动了php扩展 2. crontab -e   //是写定时 ...

  6. Linux—添加开机启动(服务/脚本)

    系统启动时需要加载的配置文件 /etc/profile./root/.bash_profile/etc/bashrc./root/.bashrc/etc/profile.d/*.sh./etc/pro ...

  7. linux添加开机启动脚本

    [root@mysql ~]# ll /etc/rc.local lrwxrwxrwx. 1 root root 13 Mar 12 22:20 /etc/rc.local -> rc.d/rc ...

  8. linux系统开机自启程序-需要-root用户 -启动 -

    #!/bin/bashsh /home/hwjc/RSA/release2017-02-23/release2017-02-23/install.shsh /etc/init.d/mqtt.shifc ...

  9. linux 添加开机自启动脚本

    原文 Linux设置服务开机自动启动的方式有好多种,这里介绍一下通过chkconfig命令添加脚本为开机自动启动的方法. 1. 编写脚本autostart.sh(这里以开机启动redis服务为例),脚 ...

随机推荐

  1. python - linux下 no module named pip

    有网络的情况下,linux系统提示无法使用pip命令: 有两种解决方式: 第一种: =============================== 敲命令:python -m ensurepip 得到 ...

  2. APT软件包管理-在线安装

    APT (Advanced Packaging Tool高级软件包工具) 是一个强大的包管理系统,而那些图形化程序如 添加/删除 应用程序 都是建立 在它的基础之上的.有了dpkg后,Debian再次 ...

  3. frei0r-1.7.0 20191207-0d4b342 DLLs

    https://files.cnblogs.com/files/nlsoft/frei0r-20191207-0d4b342-bin.7z

  4. linux网络管理命令"ip"用法

    Linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务.  ip help命令: 显示ip相关命令的帮助: # i ...

  5. extentreports 测试报告引用extend.js/css失败

    测试工程引用extentreports 生成的测试报告,因为报告中的js和css网络不通,所以页面乱码 解决思路: 下载需要的js.css放到测试工程的static目录下 下载extentreport ...

  6. B/S结构-登录页面-测试用例设计

    页面描述: 有一个登陆页面, 假如上面有2个textbox, 一个提交按钮 测试需求: 请针对这个页面设计30个以上的testcase 功能测试(Function test) 0. 什么都不输入,点击 ...

  7. Java拆箱装箱

    原文 http://www.cnblogs.com/dolphin0520/p/3780005.html

  8. CentOS7下MySQL服务启动失败原因及解决方法

    在重启阿里的CentOS7服务器后,重启MySQL 出现错误 Starting mysqld (via systemctl): Job for mysqld.service failed becaus ...

  9. Linux下安装双JDK环境与双服务器

    安装双JDK环境和双服务器,具体操作如下: (1)使用tar -xvf命令解压Tomcat: (2)在Tomcat服务器下的bin文件夹下的catalina.sh文件中的头部加入以下内容: (3)修改 ...

  10. 卸载mysql后再安装提示The service already exists!问题解决方法

    卸载mysql后再安装输入mysqld --install 回车后提示The service already exists! 原因:卸载的时候没有卸载干净 方法: 一.重新以管理员身份打开cmd 二. ...