Linux에서 재부팅 후 시작된 ROS 스크립트를 중지하는 방법 [닫기]

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 파일 콘텐츠에 대한 액세스 권한이 없기 때문에 추가할 수 없습니다.

답변1

다른 소스에서는 액세스할 수 없기 때문에 다음을 사용하여 Linux에서 화면을 전환하는 방법을 찾았습니다. ++ CTRL(이동).AltF1F6

이를 통해 사용자로 로그인하고 파일을 다시 편집하거나 프로세스를 종료할 수 있습니다.

관련 정보