[英]Can't seem to kill a process with bash script
我一直在嘗試使用批處理腳本殺死進程,但似乎無法使其正常工作,我已經在線閱讀了很多教程並嘗試了不同的方法,但似乎無法殺死進程
運行方式:(crontab)
* * * * * /home/pi/status.sh > /home/pi/logs/status.log 2>&1
日志:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
^M 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0^M100 10 100 10 0 0 73 0 --:--:-- --:--:-- --:--:-- 153^M100 10 100 10 0 0 72 0 --:--:-- --:--:-- --:--:-- $
/home/pi/status.sh: 6: /home/pi/status.sh: 18645: not found
status.sh:
Bridge=$(curl http://www.mywebsite.com/dir/cache/timestamp.txt)
timestamp=$( date +%s )
total=`expr $timestamp - $Bridge`
if (($total > 300));
then
#p=$(pidof cgminerEU)
#sudo killall -9 cgminerEU
#sudo kill -9 $(pidof cgminerEU)
sudo pkill -f cgminerEU
fi
有關過程
pi@raspberrypi ~ $ ps ax | grep cgminerEU
26018 ? Ss 0:13 SCREEN -dm ./cgminerEU
26019 pts/0 Ssl+ 89:32 ./cgminerEU
30989 pts/2 S+ 0:00 grep --color=auto cgminerEU
/home/pi/status.sh:6:/home/pi/status.sh:18645:未找到意味着它正在嘗試殺死pid 18645? 對不起,我是bash腳本的新手,這一切都很混亂
我懷疑您會發現這是由於比賽條件造成的。
screen
, cgminerEU
將立即死亡,反之亦然 pkill
向兩個進程發送信號 pkill
正在努力殺死第二個進程,然后再死掉。
我建議您嘗試從pkill
刪除-f
,以使其僅按進程名稱而不是完整的命令行殺死。
這樣,它將僅殺死cgminerEU
進程,而不殺死cgminerEU
的screen
進程( cgminerEU
,它將死為依賴項)。
PS: curl
帶有-s
以避免通過電子郵件發送進度指示器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.