linux关机触发脚本资料

更新时间:2023-06-17 02:13:38 阅读: 评论:0

实现linux在关机或重启的时候执行某个任务。
  现在把实现过程描述如下:
  先写一个脚本放在/etc/rc.d/init.d下,chmod -f 777  , 再ln -s 到 /etc/rc.d/rc0.d/K01脚本名 与 /etc/rc.d/rc6.d/K01脚本名,同时也要 ln -s 到 /etc/rc.d/rc3.d/S99脚本名 与/etc/rc.d/rc5.d/S99脚本名。
  K开头的代表系统关闭的时候执行,S开头的代表开机的时候执行。注意服务器脚本编写的规范,因为有K开通的软链接并不一定会在关机的时候自动去执行,这是为什么呢?刚开始一直没搞明白,后来从网上看到,执行K脚本的时候会查询/var/lock/subsys/下是否有与K开头脚本同名的空文件名,如果没有就不去执行,所以要按照服务器脚本编写的规范,启动的时候要在/var/lock/subsys/先touch一个与K01后面同名的空文件.同时也要调用/etc/rc.d/init.d/functions能够接受star与stop命令信号,具体可以参考/etc/rc.d/rc文件,本人是在/etc/rc.d/rc0.d/K01yum基础上改写实现的
/etc/rc0.d 包含关机脚本K* 
/etc/rc6.d 包含重启脚本K* 
 
Linux关机过程:
purpoinit同样也用来控制系统关机或者重新启动,通过shutdown命令可以实现关机操 
作。要立即关闭计算机,可以使用shutdown  -h  now命令,h代表的意思就是halt,也就 
是切断了电源,如果是重新启动,直接把h参数换成r就可以了:shutdown  -r  now 
关机过程需要一些时间,这个过程中不应该手工切断电源或者按下ret键。上面的 
例子里now参数表示的就是立即的意思,也有许多其他的参数可以选用,比如+n设定倒 
计时时间,n就是你想要的时间,这些都可以通过man  shutdown了解一下。 
举例说明,要使系统10分钟后重新起动:shutdown  -r  +10 
在linux系统里,shutdown命令会通知已经登录进来的用户它即将关机,不过意义不 
大罢了。如果定义了倒计时关机,shutdown命令会生成一个/etc/nologin文件,这个文 
件的存在能够阻止其他用户再进行登录操作,当然了,root用户除外。 
在系统关机时,shutdown命令会告诉init程序转换到0运行级别,如果是重新启动则 
转换到第6运行级别。当进入0或者6运行级别后,系统将会依照下面的顺序运行: 


1,init关闭所有它能关闭的进程(转换到其他运行级别也一样) 
2,rc0.d/rc6.d目录下的第一个命令开始运行,锁定系统文件为关机作准备 
3,rc0.d/rc6.d目录下的第二个命令运行,卸载除根文件系统以外的所有文件系统( 
如挂载的windows分区) 
4,rc0.d/rc6.d中的命令将把根文件系统重新挂载为只读属性 
5,rc0.d/rc6.d中的命令调用sync程序把缓存中的数据写入文件系统 
6,最后的命令是重新启动或者关闭内核程序
============================================
现在把实现过程描述如下:
 
  先写一个脚本放在/etc/rc.d/init.d下,chmod -f 777 , 再ln -s 到 /etc/rc.d/rc0.d/K01脚本名 与 /etc/rc.d/rc6.d/K01脚本名,同时也要 ln -s 到 /etc/rc.d/rc3.d/S99脚本名 与/etc/rc.d/rc5.d/S99脚本名。
 
  K开头的代表系统关闭的时候执行,S开头的代表开机的时候执行。注意服务器脚本编写的规范,因为有K开通的软链接并不一定会在关机的时候自动去执行,这是为什么呢?刚开始一直没搞明白,后来从网上看到,执行K脚本的时候会查询/var/lock/subsys/下是否有与K开头脚本同名的空文件名,如果没有就不去执行,所以要按照服务器脚本编写的规范,启动的时候要在/var/lock/subsys/先touch一个与K01后面同名的空文件.同时也要调用/etc/rc.d/init.d/functions能够接受star与stop命令信号,具体可以参考/etc/rc.d/rc文件,本人是在/etc/rc.d/rc0.d/K01yum基础上改写实现的。
============================================
============================================
shell如何在完成某项任务后执行某个动作?如传输文件完成后关机。
添加评论 
分享
默认排序按时间排序
5 个回答
2赞同反对,不会显示你的姓名
王滨 Python, thbattle
2 人赞同
直接在脚本里加上halt就好了
比如
#!/bin/bash
wget whatever/
do_whatever
halt
当然halt要在root下执行才会有效果
发布于 2012-10-22 添加评论 感谢 
分享
 收藏 • 没有帮助 • 举报 • 作者保留权利
0赞同反对,不会显示你的姓名
Belleve编程、JavaScript话题优秀回答者 炼金术士有关春节的英语作文
补一个 Powershell 的
do-something; stop-computer
发布于 2014-01-18 添加评论 感谢 
分享
 收藏 • 没有帮助 • 举报 • 作者保留权利
2赞同反对,不会显示你的姓名
知性优雅
匿名用户
2 人赞同
Do something  && halt
发布于 2014-01-16 1 条评论 感谢 
分享
 收藏 • 没有帮助 • 举报 • 作者保留权利
1赞同反对,不会显示你的姓名
匿名用户
1 人赞同
shell就是把一组命令放在一个文件中按照特定模式执行,里面可出现循环变量替换,函数,ca,逐条堆积,思路清晰先什么后什么,执行即可!
#!/bin/sh
echo “…………”
echo “…………”
echo “…………”
if [ $? -eq 0 ];then
do
echo “…………”
init 0
done
…………………………………邪恶的分割线………………
补充如下:上面是以前写的现在是这么写.人是要进步的.
#!/bin/bash
#
if /bin/cp test1 test2 >/dev/null 2>&1;then
init 0草莓的英语
if
英文作文格式编辑于 2015-11-19 3 条评论 感谢 
分享
 收藏 • 没有帮助 • 举报 • 作者保留权利
0赞同反对,不会显示你的姓名
知乎用户 年轻人最重要的品质是不撸
#!/bin/bash
cp filelime
wqnmlgb各种翻译
if [ $? -eq 0 ];then #如果上面一个命令执行成功,则执行下面这个。
shutdown -p now
fi
============================================
Linux下如何在特定时间执行特定任务
1 仅执行一次的任务
2 循环执行的任务
3 可唤醒停机期间的工作任务
tmb
1 仅执行一次的任务
所需程序
atd服务
at命令
启动atd
# rvice atd restart
atd stop/waiting
atd start/running, process 11031
千万注意要在root下执行,不然会提示Rejected nd message.
at的使用
使用at的权限(因为安全性考虑最好设置)
在/etc/at.allow中设置可以使用at的账号
在/etc/at.deny中设置不可以使用at的账号
示例
1分钟后执行mkdir
$ at now + 1 minutes
warning: commands will be executed using /bin/sheasy ui
at> mkdir helloAt
at> <EOT>
job 1 at Wed Feb  6 14:36:00 2013
查看工作
# at -c 2
#!/bin/sh
# atrun uid=0 gid=0
# ...
$ mkdir helloAt
特定时间关机
$ at 14:00 2013-2-9
warning: commands will be executed using /bin/sh
at> /bin/sync
at> /bin/sync
at> /sbin/shutdown -h now
at> <EOT>
job 4 at Sat Feb  9 14:00:00 2013
at如何执行
输入输出:标准输入输出会重定向到mailbox里,所以执行echo "hello"在终端下是看不到的
后台工作:系统会将at工作独立于shell,交给atd程序接管,即使关了shell也没关系
查询与删除at中的工作
查询:atq
删除:atrm jobid
batch:和at相似,只是在cpu负载低时才执行
2 循环执行的任务
所需程序
crontab
权限限制
/etc/cron.allow
/etc/cron.deny
示例
$ crontab -e #添加任务
进入编辑环境,使用vim编辑
格式:# m h dom mon dow command
m:minute, h:hour, dom:day of month
mon:month, dow:day of week
任务示例:0 5 * * 1 tar -zcf var/ /home
*表示任何时间
$ crontab -l #查询任务
$ crontab -r #删除任务
3 可唤醒停机期间的工作任务
anacron:crontab任务因为关机没有执行,anacron可以在开机时检测没有执行的crontab任务,都执行一遍
对比英文============================================divisional

本文发布于:2023-06-17 02:13:38,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/147658.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:执行   关机   命令   时候   脚本   任务   用户
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图