代码之家  ›  专栏  ›  技术社区  ›  McBooley

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

  •  0
  • McBooley  · 技术社区  · 6 年前

    我创建了一个脚本,可以检查某个服务器是否正在运行,并在崩溃时重新启动它(脚本每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\u开始。上海

    #! /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文件内容,因为我无法访问它。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Developer Guy Adam    6 年前

    由于我无法从其他来源访问它,我找到了一种在Linux中切换屏幕的方法,使用: CTRL键 + 高度 + F1级 (转到 F6层 )。

    这样就可以以用户身份登录并重新编辑文件/终止进程。