在Linux中開機自動運行普通用戶腳本程序

;測試環境:Fedora7,管理員:root,普通用戶:test1 實現目標:在Linux啟動時,自動運行位于普通用戶test1根目錄下的腳本程序test.py,該程序會在每次執行時自動向本地日志文件追加一條記錄,源碼如下: from datetime import datetimenow=datetime.now()f=open("test.log","a")f.write("%s "%now)f.close()Linux在啟動時,會自動執行/etc/rc.d目錄下的初始化程序,因此我們可以把啟動任務放到該目錄下,有兩種辦法: 方案一: 1.因為其中的rc.local是在完成所有初始化之后執行,因此我們可以把啟動腳本寫到里面 2.用root賬號登陸Linux,vi /etc/rc.d/rc.local編輯文件,在最后加入兩行需要執行的腳本程序: cd /home/test1 --該步不可少,否則會提示沒有權限打開"test.log"文件 su test1 -c "python /home/test1/test.py" --把要執行的命令作為一個參數傳遞級su 方案二: 1.init.d目錄下都為可執行程序,他們其實是服務腳本,按照一定格式編寫,Linux 在啟動時會自動執行,類似Windows下的服務 2.用root帳號登錄,vi /etc/rc.d/init.d/mystart,追加如下內容: #!/bin/bash#chkconfig:2345 80 05 --指定在哪幾個級別執行,0一般指關機,6指的是重啟,其他為正常啟動 。80為啟動的優先級,05為關閉的優先機#description:mystart serviceRETVAL=0start(){ --啟動服務的入口函數echo -n "mystart serive ..."cd /home/test1su test1 -c "python /home/test1/test.py"}stop(){ --關閉服務的入口函數echo "mystart service is stoped..."}case $1 in --使用case,可以進行交互式操作start)start;;stop)stop;;esacexit $RETVAL3.運行chmodr /etc/rc.d/init.d/mystart,使之可直接執行 4.運行chkconfig --add mystart,把該服務添加到配置當中 5.運行chkconfig --list mystart,可以查看該服務進程的狀態

    推薦閱讀