2013-03-16 28 views
5

我有幾個加密的驅動器,我在啓動後使用腳本手動掛載。其中一個驅動器託管我的保管箱文件夾。如果正在運行,重新啓動dropbox-daemon

我需要檢查dropbox是否在安裝驅動器時運行,以便我可以停止dropbox,然後再次啓動它,使其同步正確。

這是我迄今爲止,但如果它已經運行,我不能讓它停止dropbox。

#!/bash/rc 
if ~/dropbox.py running && [ $? -eq 1 ]; then 
    ~/dropbox.py stop 
else 
    ~/dropbox.py start 
fi 
+0

您可以使用'/etc/init.d/dropbox stop' – fedorqui 2013-03-16 22:30:29

+0

問題是,它永遠不會停止dropbox,只是說它正在運行。 我想要的是Dropbox停止,然後在看到服務正在運行時啓動。 – hild 2013-03-22 09:56:42

回答

6

嘗試

killall dropbox 

這將阻止它肯定!默認情況下發送SIGTERM,這是停止進程的正確方法。如果您的系統支持多個用戶同時登錄,那麼該命令將終止所有用戶的保管箱,或者至少它會嘗試這樣做。所以,更優雅的方式是使用

killall -u myusername dropbox 

,如果您當前登錄的用戶:

killall -u "$(whoami)" dropbox 

,或者甚至

killall -u "$USER" dropbox 

更新:好,它看起來像人們喜歡這個答案。但是,有一件重要的事情要知道。只是發送一個信號給進程並不意味着它會立即終止(或者killall要等待它終止)。因此,如果您認爲Dropbox已經消失,Dropbox可能會試圖安全終止(可能需要一些時間才能完成)。只是需要考慮的事情。

相關問題