2012-05-27 59 views
0

我有一個腳本,當系統第一次啓動時運行。但是第二次使用同樣的腳本也只能通過滑動一個命令來使用。BASH - 我如何獲得執行的跟蹤?比如第一次和第二次運行忽略了什麼?

,所以我是用可變嘗試,但它似乎沒有辦法對其進行跟蹤。

E.g:/var/tmp/runme.sh < <在同一個腳本是使用

#!/bin/bash 
mkfifo pipe; 
mkfifo pipe1; 
ps aux | grep Java.jar | awk '{print $2}' | xargs kill -9; 
sleep 1; 

# 
# Question on this: 
# only one time it execute/its my application boot process 
# - this is only one time on system startup 
# 
############################################################## 
export DISPLAY=:0.0 && java -cp Java.jar main.Boot & 

# 
# second time this following should always execute 
# This is my software kernel, which crash often 
# on the fly i restart it 
# 
while true; do cat /var/jpeg1.jpeg >> pipe; done 
while true; do cat /var/jpeg2.jpeg >> pipe1; done 
export DISPLAY=:0.0 && java -cp Java.jar main.Desktop & 

回答

1

只需使用一個鎖文件:)例如:在腳本中添加的開頭:

lockfile= /var/lock/MyLockFile 
if [! -f $lockfile ] then 
    touch $lockfile 
    ....place your run-once commands here... 
fi 

請記住在啓動的初期階段,在系統關機或腳本刪除$ TMPFILE的腳本!

+0

我怎麼知道,當系統處於關機或重啓或手動應用'$ sudo的初始化6或sudo初始化0'和修補自己的腳本來完成必要的管理? – YumYumYum

+1

那麼,你可能會從rc.local這樣的東西中調用你的腳本,不是嗎?因此,只需在其中放置以下squence:rm $ lockfile;/path/to/your/script/ScriptName – cezar

+0

謝謝.............! – YumYumYum

1

/var/run創建一個鎖定文件(假設你的系統啓動時自動清除/var/run - 或使用/tmp如果工作得更好)。檢查鎖文件是否存在,並根據它是否採取不同的操作。

相關問題