Linux 如何停止重新启动后启动的ROS脚本

Linux 如何停止重新启动后启动的ROS脚本,linux,bash,ubuntu-14.04,virtualbox,ros,Linux,Bash,Ubuntu 14.04,Virtualbox,Ros,我创建了一个脚本,该脚本将检查某个服务器是否正在运行,并在崩溃时重新启动它(该脚本每10秒无休止地运行一次) 如何停止/忽略/中断脚本?我无法运行任何命令,而且CTRL+C、CTRL+A、CTRL+Z都不起作用 主要问题还在于机器服务器未运行,因此无法使用MobaXterm访问IP。我在VirtualBox上运行Ubuntu14.04,只有终端,没有GUI 重新启动脚本: #! /bin/bash while : do COUNT="$(pgrep -f Odie | wc -l

我创建了一个脚本,该脚本将检查某个服务器是否正在运行,并在崩溃时重新启动它(该脚本每10秒无休止地运行一次)

如何停止/忽略/中断脚本?我无法运行任何命令,而且CTRL+C、CTRL+A、CTRL+Z都不起作用

主要问题还在于机器服务器未运行,因此无法使用MobaXterm访问IP。我在VirtualBox上运行Ubuntu14.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)在屏幕之间切换的方法

这使得以用户身份登录并重新编辑文件/终止进程成为可能