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
'[-z「$(pgrep deluged)」]'將在沒有'流氓'進程正在運行時返回true。還有什麼關於這不是專門工作?那麼關於iptables的問題到底是什麼? – 2014-09-23 00:11:48
woops我切換它。謝謝。我有我的iptables設置爲刪除所有連接傳入和傳出,除非它們與我的SSH守護進程相關。因爲這個,我不能使用洪水,我不確定它需要什麼端口才能工作。我寧願在使用洪水時不接受所有輸入,只打開必要的端口。我知道我需要使用端口57714來使用cli界面,但是我應該打開什麼端口來實際下載種子。 – Painguy 2014-09-23 00:14:43
你應該能夠設置一個洪水範圍,以便爲我想象的連接打開哪些端口。我知道其他客戶可以做到這一點。 – 2014-09-23 00:19:27