Linux关机执行脚本命令应该怎么做?
发表时间:2020-03-18 18:07 | 分类:Linux | 浏览:2,102 次
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个回复
Comment (2)
Trackbacks (0)
-
还没有Trackbacks
资源很丰富…
感谢分享,来学习学习。