У меня есть терминальный сервер Linux (xrdp), и мне нужен сценарий, который завершит сеанс и отправит пользователя на экран входа в систему после завершения соединения rdp.
ОС: ЦентОС 8
Я написал это, но чувствую, что мне нужно что-то еще
#!/bin/bash
if
xfreerdp /v:"my-IP" /u:"my-user" /p:"pass" -f
else
gnome-session-quit
fi
Идея такая: Пользователь запускает свой компьютер, входит в свою учетную запись, скрипт запускается автоматически и подключает его к rdp-сессии на сервере. После того, как пользователь заканчивает работу, он завершает соединение и скрипт отправляет его на экран входа в систему. Фактически пользователь мало взаимодействует с установленной на компьютере ОС.





Попробуйте с:
#!/bin/bash
xfreerdp /v:"my-IP" /u:"my-user" /p:"pass" -f
wait
gnome-session-quit
Объяснение: команда wait bash ожидает завершения каждого только что порожденного процесса, а затем переходит к выполнению следующих инструкций.
@triplee Я добавил объяснение.
Хм, но проблема ОП заключалась в том, что они (как ни странно!) использовали оператор if. Я не спрашиваю, почему это работает, я спрашиваю, почему у них этого не произошло.
Несмотря на неправильный синтаксис if, закрыть сеанс после сеанса xdrp не получится, поэтому я предоставил полное решение опубликованного варианта использования.
Возможно, ответ должен более подробно объяснить, почему попытка ФП была ошибочной?