2014-09-22 213 views
0

我正在嘗試編寫一個在我的ssh服務器上被淹沒的腳本,但我很難檢查一個進程是否始終運行。它總是認爲洪水正在運行。我有一個拒絕所有iptable設置,並且不知道如何使它工作,除非我每次運行它時都設置這些規則。Bash腳本檢查進程是否正在運行

#!/bin/bash 
#starts deluged and deluge console 
echo "Start or Close Deluge?" 
read startcls 
if [[ $startcls == "S" || $startcls == "s" ]]; then 
    if [ -z "$(pgrep deluged)" ]; then 
     echo "Deluge Daemon already running. Close it?" 
     read input 
     if [[ $input == "y" || $input == "Y" ]]; then 
      pkill deluged 
      iptables -D OUTPUT -p tcp --dport 57714 -j ACCEPT 
      iptables -P INPUT DROP 
      echo "Deluged process terminated" 
     fi 
    else 
     iptables -A OUTPUT -p tcp --dport 57714 -j ACCEPT 
     iptables -P INPUT ACCEPT 
     deluged 
     echo "Deluge Daemon started" 
     deluge-console 
    fi 
else 
    pkill deluged 
    iptables -D OUTPUT -p tcp --dport 57714 -j ACCEPT 
    iptables -P INPUT DROP 
    echo "Deluged process terminated" 
fi 
+1

'[-z「$(pgrep deluged)」]'將在沒有'流氓'進程正在運行時返回true。還有什麼關於這不是專門工作?那麼關於iptables的問題到底是什麼? – 2014-09-23 00:11:48

+0

woops我切換它。謝謝。我有我的iptables設置爲刪除所有連接傳入和傳出,除非它們與我的SSH守護進程相關。因爲這個,我不能使用洪水,我不確定它需要什麼端口才能工作。我寧願在使用洪水時不接受所有輸入,只打開必要的端口。我知道我需要使用端口57714來使用cli界面,但是我應該打開什麼端口來實際下載種子。 – Painguy 2014-09-23 00:14:43

+0

你應該能夠設置一個洪水範圍,以便爲我想象的連接打開哪些端口。我知道其他客戶可以做到這一點。 – 2014-09-23 00:19:27

回答

0

可能是您的腳本名稱中含有「淹沒」一詞。將其更改爲類似Deluge_check.sh(帶有大寫字母「D」)

相關問題