Linux
Linux如何停止重啟後啟動的ROS腳本
我創建了一個腳本,該腳本將檢查某個伺服器是否正在執行並在發生崩潰時重新啟動它(該腳本每 10 秒無休止地執行一次)。
我無法執行任何命令,並且 CTRL+C、CTRL+A、CTRL+Z 不起作用。
主要問題還在於機器伺服器沒有執行,因此 MobaXterm 無法訪問 IP。
是否有另一種解決方法來停止/忽略/破壞腳本?
我在 VirtualBox 上執行 Ubuntu 14.04,只有終端,沒有 GUI!
如果有幫助,這裡是腳本。
重啟腳本:
#! /bin/bash while : do COUNT="$(pgrep -f Odie | wc -l)" echo $'\n' echo "Number of Odie processes (COUNT) = $((COUNT))" echo "$(pgrep -fla Odie)" case "$(screen -ls | grep Odie | wc -l)" in 0) echo "Restarting Odie: $(date)" | sudo tee -a /var/log/OdieLog.txt bash -c "exec -a OnlyOdie ./screen_start.sh" ;; 1) # all ok echo "Process is running: $(date)" | sudo tee -a /var/log/OdieLog.txt ;; 2) echo "Removed double Odie: $(date)" | sudo tee -a /var/log/OdieLog.txt #kill $(pgrep -f OnlyOdie | awk '{print $1}') screen -ls | awk -vFS='\t|[.]' '/Odie/ {system("screen -S "$2" -X quit")}' ;; esac sleep 10 done
screen_start.sh
#! /bin/bash SCREEN_COUNT="$(screen -ls | grep Odie | wc -l)" if [ "$SCREEN_COUNT" -eq 0 ] then echo "SCREEN_COUNT = ZERO" screen -sdm ./start.sh -S Odie fi
遺憾的是我無法添加 ROS 文件內容,因為我無法訪問它。
由於我無法從其他來源訪問它,我找到了一種在 Linux 中切換螢幕的方法:++
CTRL
(轉到)。Alt``F1``F6
這使得以使用者身份登錄並重新編輯文件/終止程序成為可能。