Запуск программы с графическим интерфейсом через ssh

Рейтинг: -1Ответов: 1Опубликовано: 13.02.2023

Имеется следующая задача:

2 ПК, на обоих установлен AstraLinux SE

1.Необходимо создать скрипт который запускается на ПК клиента.

2.Данный скрипт должен выполнить подключение по ssh к другому ПК и на этом втором ПК запустить программу(оконное приложение).

3.После этого ПК клиента можно выключить или просто выполнить отключение от ssh сессии. При этом запущенная программа должна продолжить работать.

Проблема в том что при выполнении 3 пункта, запущенная программа(будь то хоть kate хоть любая другая) также отключается.

В интернете куча советов по использованию screen, tmux, nohup, disown и т.д. но ни один не помог. При отключении от ssh (exit или logout), запущенная программа выключается.

Возникает вопрос возможно ли вообще такое сделать или обойти завершение всех запущенных процессов по ssh при его отключении в принципе нельзя??

Ответы

▲ 3Принят

Создай юнит ~/.config/systemd/user/gedit.service

[Unit]
Description=Gedit

[Service]
Type=oneshot
Environment="XDG_RUNTIME_DIR=/run/user/1000"
Environment="DISPLAY=:0"
ExecStart=/usr/bin/gedit
RemainAfterExit=yes

[Install]
WantedBy=graphical-session.target

Запускай

XDG_RUNTIME_DIR=/run/user/1000 systemctl --user start gedit.service

Процесс будет запущен не из сессии SSH, а из сессии пользователя через супервизор.

Лог

journalctl --user -u gedit.service -e -f