开关机自动执行脚本方法[以及切换用户执行命令方法]
【開關(guān)機(jī)自動(dòng)執(zhí)行腳本方法】
摸索了兩天,終于找找們到了:
首先要明確的一點(diǎn)是:unix(含linux)的OS有若干個(gè)運(yùn)行級(jí)別:
參見1:http://xiaoli.itpub.net/post/39893/486580
參見2:http://www.blogjava.net/jvict/articles/261426.html
不同的unix或者linux的級(jí)別設(shè)置可能不一樣,以我遇到的兩個(gè)例子而言,SunOS的Solaris 10默認(rèn)運(yùn)行在level-3,而SuSE 11 Server默認(rèn)運(yùn)行在level-5。
我們打開系統(tǒng)的rc*.d目錄:(對(duì)于solaris是/etc/rc3.d/;對(duì)于SuSE是/etc/rc.d/rc5.d)
里面有很多以K和S開頭的文件,K(Kill)表示關(guān)閉系統(tǒng)前執(zhí)行,S(Start)表示啟動(dòng)時(shí)執(zhí)行,執(zhí)行順序按照K和S右面的兩位字母的順序,從小到大(明天驗(yàn)證一下)。
對(duì)于Solaris系統(tǒng),只要新建一個(gè)K***或者S***文件,將需要執(zhí)行的命名輸入在里面,賦予執(zhí)行權(quán)限就可以做到開機(jī)自動(dòng)執(zhí)行或者關(guān)機(jī)自動(dòng)執(zhí)行了,例如/bin/echo "start $(whoami)" >> /aaa/KKaa.tmp;
而對(duì)于SuSE系統(tǒng),文件需要這樣寫:
#!/bin/bash
ARG=$1
case $ARG in
start):
/bin/echo "start $(whoami)" >> /aaa/KKaa.tmp
;;
stop):
/bin/echo "stop $(whoami)" >> /aaa/KKaa.tmp
;;
restart):
/bin/echo "restart $(whoami)" >> /aaa/KKaa.tmp
;;
esac
因?yàn)樵陂_關(guān)機(jī)時(shí)是帶參數(shù)執(zhí)行這個(gè)文件,參數(shù)為“start”或者“stop”,如果不用這樣的case語(yǔ)句是無(wú)法執(zhí)行的。這一點(diǎn)上兩者不同。
?
【切換用戶執(zhí)行命令方法】
su - username -c "command_line"來(lái)執(zhí)行,如果當(dāng)前用戶是root,則不需要輸入密碼,且執(zhí)行完畢后仍回到root用戶。
?
上面兩種方法結(jié)合使用,就能夠在系統(tǒng)啟動(dòng)或者關(guān)閉時(shí),執(zhí)行多個(gè)用戶下的任務(wù)。
總結(jié)
以上是生活随笔為你收集整理的开关机自动执行脚本方法[以及切换用户执行命令方法]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 细说plsql中的空值表达式
- 下一篇: 向其他终端发送消息