1. 首页
  2. 系统运维
  3. Linux

Linux关机执行脚本命令应该怎么做?

Linux关机执行脚本命令应该怎么做?这个要从最近在做一个存储挂载碰到的问题说起。通过iscsi挂载存储,运行程序,然后重启发现系统会卡在磁盘卸载的一步,但是在卸载磁盘前把应用关闭就可以正常重启。找了几个办法都不行,最后就想通过关机自动运行脚本来绕过这个问题。

那么在做这个脚本之前,我们需要先理解Linux的七个启动级别。他们分别是:

rc0: 停机(不能使用)
rc1: 单用户模式
rc2: 多用户模式,但是没有NFS
rc3: 完全多用户模式
rc4: 没有使用,系统预留
rc5: 图形界面模式
rc6: 重启模式(不能使用)

这些目录里有运行的脚本命令。脚本分为两类:KXX,SXX。其中K代表Kill,是停止的意思,S代表Start,是启动的意思。紧跟在后面的数字是优先级,数字越大,优先级越低。

知道了这些,那么linux关机或重启运行脚本命令就可以放在rc0和rc6中。

具体关机执行脚本命令应该怎么做的步骤例如:

一、在/etc/init.d目录下添加关机时的执行脚本snaking616

脚本:

#!/bin/bash 
cd /etc/init.d 
echo "admin"|sudo -S touch eth_set_100 
echo "admin"|sudo -S chmod 777 eth_set_100 
echo "#!/bin/bash 
echo "admin"|sudo -S ethtool -s eth1 autoneg off speed 100 duplex full" > eth_set_100 

脚本在系统关机时会在文件夹/etc/init.d下自动生成脚本文件eth_set_100,并将指定内容写入该文件内。

二、创建连接文件

sudo ln -s /etc/init.d/snaking616 /etc/rc0.d/K07snaking616
sudo ln -s /etc/init.d/snaking616 /etc/rc6.d/K07snaking616

当系统关机时间,在文件夹/etc/init.d下,就会自动生成脚本文件eth_set_100。具体脚本要实现什么功能就自己发挥了。

2 评论
内联反馈
查看所有评论
青萌
4 年 前

资源很丰富…

哈灵游戏
4 年 前

感谢分享,来学习学习。

联系我们

0574-55011290

QQ:248687950

邮件:admin@nbhao.org

工作时间:周一至周五,9:00-18:00,节假日休息

QR code