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