2016-02-02 74 views

回答

0

我會包裝在一個簡單的bash腳本中執行的二進制文件,該腳本將啓動的進程的pid保存在一個臨時文件中。如果此文件已存在,則跳過應用程序的啓動。由於該文件保存在/tmp目錄中,一旦重新啓動計算機,所有內容都將被刪除。

#!/bin/bash 

binary="git-cola" 
temp_file="/tmp/my_${binary}_instance.pid" 

if [[ -f ${temp_file} ]] 
then 
    echo "PID exists" 
else 
    exec ${binary} & 
    echo $! > ${temp_file} 
fi 

有了你可以檢查進程的PID仍在運行,並再次重新啓動它的登錄(例如,如果進程崩潰或其他用戶關閉它)再努力一點。

我實際上不使用Gnome,所以我不能告訴你是否有更優雅的方法來終止進程。就像註銷鉤子一樣。但是一旦你獲得了保存的進程的pid,你可以用kill -9 PID殺死它。 (請參閱man kill以更溫和的方式結束該過程)。

這可能不是停止過程的解決方案。但要防止它啓動兩次。