В крошечном ядре Linux у меня есть следующий скрипт:


#!/bin/sh
# ~/.X.d/freerdp.sh

rdp(){
while true
do
xfreerdp -f [IP Address]
done
}

rdp &

Это довольно просто; когда X запускается и проверяет.Директория Xd (как в случае с крошечным ядром) находит и выполняет этот скрипт. Сценарий запускает freerdp и сохраняет соединение открытым с сервером, перезапуская его всякий раз, когда оно закрывается. Как видно из rdp & , функция запускается в фоновом режиме, чтобы позволить X продолжить процедуру запуска.

Проблема в том, что всякий раз, когда я отменяю X с помощью CTRL+ALT+BACKSPACE, процесс rdp не умирает.

Я ищу способ убить процесс, как только X завершится, либо через:

A) сценарий, выполняемый при закрытии X, который убивает процесс или B) путем изменения сценария для проверки возвращаемого значения команды xfreerdp .

NB. Если решение проверяет возвращаемое значение, оно должно завершиться только в том случае, если команда не может открыть X-дисплей. По этой причине, если бы вы могли указать мне ссылку на возвращаемые значения xfreerdp я был бы благодарен.

2 ответа2

0

Посмотрите, поможет ли это

Кажется, на этот вопрос уже дан ответ.

0

В конце концов я решил эту проблему, изменив код так:

#!/bin/sh
# ~/.X.d/freerdp.sh

while true
do
xfreerdp -f [IP Address]
done

Ужасно, и мне пришлось реорганизовать порядок выполнения скриптов, чтобы этот запускался последним, но это вроде работает ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .