Linux的开机自动开启和自动关闭

自动关机:

一:用shutdown命令来关机
比如:
#shutdown -h 20:00
在晚上8点关机
# shutdown -h 40
在40分钟后关机

shutdown命令一定要用root身份输入,缺点是不能做到每天或某个时刻,而且每次需要在系统启动后打开终端来设置这个命令
shutdown: invalid option -- -
Usage: shutdown [-akrhfnc] [-t secs] time [warning message]
-a: use /etc/shutdown.allow
-k: don't really shutdown, only warn.
-r: reboot after shutdown.
-h: halt after shutdown.
-f: do a 'fast' reboot (skip fsck).
-F: Force fsck on reboot.
-n: do not go through "init" but go down real fast.
-c: cancel a running shutdown.
-t secs: delay between warning and kill signal.
** the "time" argument is mandatory! (try "now") **

PS:我是这样的shutdown -t 54000 就是运行15小时后自动关机

1:shutdown命令关机

  各参数功能:

  -c 取消前一个shutdown命令。

  -f 重新启动时不执行fsck(注:fsck是Linux下的一个检查和修复文件系统的程序)。

  -F 重新启动时执行fsck。  -h 将系统关机,在某种程度上功能与halt命令相当。

  -k 只是送出信息给所有用户,但并不会真正关机。

  -n 不调用init程序关机,而是由shutdown自己进行(一般关机程序是由shutdown调用init来实现关机动作),使用此参数将加快关机速度,但是不建议用户使用此种关机方式。

  -r 关机之后重新启动系统。

     now  表示立即执行,now=+0

  -f<秒数> 送出警告信息和关机信号之间要延迟多少秒。警告信息将提醒用户保存当前进行的工作。

  [时间] 设置多久时间后执行shutdown命令。时间参数有hh:mm或+m两种模式。hh:mm格式表示在几点几分执行shutdown命令。例如“shutdown 10:45”表示将在10:45执行shutdown。+m表示m分钟后执行shutdown。比较特别的用法是以now表示立即执行shutdown。值得注意的是这部分参数不能省略。


1)定时关机sudo shutdown -h 23:00  //表示在23点定时关机


2)延时关机sudo shutdown +minutes(这个加号不可省略,minutes表示分钟)比如: sudo shutdown -h +120  //两小时候关机


3)取消前一个关机命令按“Ctrl+C”键或输入命令:shutdown -c

 


2、编写脚本文件关机

1)先用编辑器建立一个文件,如guanji.sh

sudo nano guanji.sh输入如下内容:

#! /bin/sh

shutdown -h 23:00  //表示晚上23点00分关机,并关闭电源。


2)给脚本可执行权限右键此文件,选择属性->权限,最下方会有一个“允许以程序执行文件”,将这一项勾选,就可以了。

或在命令行下附予权限:

        chmod 777 test.sh或: chmod +x test.sh
3)执行脚本命令或双击运行。 #sh guanji.sh

 

二:用的方法是用crontab调用linux的关机命令。
 1.root登陆到linux主机
2.运行crontab -e命令
3.然后点击"i",对文本框进行编辑
4.将下面内容填入: 0 18 * * * halt -p
意思是每天18:00整定时运行halt -p命令 halt -p命令就是关机的意思。
 5.运行“:wq”进行保存退出
6.运行下面的命令:
/sbin/service crond restart 意思是重启crond服务。
 7.设置成功
感受:
1.关机命令有很多种
shutdown now这种关机命令不包含关闭电源,所以当你运行之后发现机器的电源还亮着。 init 0这个关机命令很好,而且也包含关闭电源。但是不知道为什么,不能在crontab中使用 halt -p现在用的就是这个命令。
2.修改完成crontab之后必须重启他的服务,我在这个上面花的时间最多,最后终于总结出这条规律。

 
开机自动启动:
linux自动启动服务很简单,最简单的是把启动命令放到/etc/rc.d/rc.local文件里。这样就可以每次启动的时候自动启动服务了。例如对于 apache,编译好apache后会在安装目录的bin下生成apachectl文件,这是个启动脚本,我们只需要把这个命令加到rc.local里就可以了:
echo /usr/local/apache/bin/apachectl >> /etc/rc.d/rc.local

此外我们还可以使用chkconfig命令来把某项服务加到系统的各项运行级别中,步骤如下:
1 创建启动脚本,对于apache、mysql、ssh这样的软件都是自己带的,我们只要稍微修改一下使之支持chkconfig就可以了
2 修改脚本
我们需要在脚本的前面加上2行,才能支持chkconfig命令
# chkconfig: 2345 08 92
# description: Automates a packet filtering firewall with ipchains.

chkconfig:后面定义的使启动服务的运行级别(例子中使2345启动该服务),以及关闭和启动服务的顺序(上例中启动服务的顺序是8,关闭的顺序是92)。
descriptions:对该服务的描述(上例中是ipchains包过滤),你可以换成自己想要的

修改好之后执行
cp 你的脚本 /etc/rc.d/init.d/脚本名
chmod 700 /etc/rc.d/init.d/脚本名
chkconfig --add 脚本名
以后每次重新启动服务器都会自动启动和关闭我们的服务了

而且你执行setup之后也可以看到我们添加的服务,选中我们添加的服务按F1键还可以看到我们定制的信息。 

chkconfig命令:

  chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。

语法:
    chkconfig --list [name]
    chkconfig --add name
    chkconfig --del name
    chkconfig [--level levels] name <on|off|reset>
    chkconfig [--level levels] name
    chkconfig 没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回true,否则返回false。如果在服务名后面指定 了on,off或者reset,那么chkconfi 会改变指定服务的启动信息。on和off分别指服务被启动和停止,reset指重置服务的启动信息,无论有问题的初始化脚本指定了什么。on和off开 关,系统默认只对运行级3,4,5有效,但是reset可以对所有运行级有效。
    --level选项可以指定要查看的运行级而不一定是当前运行级。
    需要说明的是,对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。
    chkconfig --list :显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。
    chkconfig --add name:增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。
    chkconfig --del name:删除服务,并把相关符号连接从/etc/rc[0-6].d删除。
    chkconfig [--level levels] name <on|off|reset>:设置某一服务在指定的运行级是被启动,停止还是重置。例如,要在3,4,5运行级停止nfs服务,则命令如下:
    chkconfig --level 345 nfs off
运行级文件:
    每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。第二行对服务进行描述,可以用\ 跨行注释。
例如,random.init包含三行:
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \

# higher quality random number generation.
此例子表明random服务的缺省启动运行级在2、3、4、5级,启动的优先级(顺序号)是20,停止的优先级(顺序号)是80。

附加介绍一下Linux系统的运行级的概念:

    Linux中有多种运行级,常见的就是多用户的2,3,4,5 ,很多人知道5是运行X-Windows的级别,而0就是关机了。运行级的改变可以通过init命令来切换。例如,假设你要维护系统进入单用户状态,那么,可以使用init1来切换。在Linux的运行级的切换过程中,系统会自动寻找对应运行级的目录/etc/rc[0-6].d下的K和S开头的文件, 按后面的数字顺序,执行这些脚本。对这些脚本的维护,是很繁琐的一件事情,Linux提供了chkconfig命令用来更新和查询不同运行级上的系统服务

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值