Linux

Linux如何停止重啟後啟動的ROS腳本

  • May 3, 2018

我創建了一個腳本,該腳本將檢查某個伺服器是否正在執行並在發生崩潰時重新啟動它(該腳本每 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

這使得以使用者身份登錄並重新編輯文件/終止程序成為可能。

引用自:https://unix.stackexchange.com/questions/439912