Я хочу выполнить команду в оболочке csh, я хочу вернуть управление терминалом, НО я также хочу, чтобы команда все еще выполнялась
Я настроил джейл Devuan Linux на FreeBSD (где я использую оболочку csh), следуя этому руководству:
https://forums.freebsd.org/threads/setting-up-a-debian-linux-jail-on-freebsd.68434/
вроде бы все работает нормально, за исключением того, что я не знаю, как запустить графический менеджер рабочего стола. Моя конечная цель — установить и настроить teamviewer внутри тюрьмы. Во всяком случае, в соответствии с этим руководством (с некоторыми изменениями, сделанными мной)
https://zotovp.wordpress.com/2016/08/24/install-teamviewer-in-x86-chroot-on-x64-host-debian-jessie/
Я должен запустить два скрипта, тот, что ниже, на хост-системе (в моем случае это FreeBSD 13R) с IP-номером =192.168.1.6.
/home/marietto/Рабочий стол/teamviewer.sh
#/bin/bash
xhost +
socat -d -d TCP-LISTEN:6000,fork,bind=192.168.1.6 UNIX-CONNECT:/tmp/.X11-unix/X0 &
jail -c devuan
jexec devuan /bin/bash ~/teamviewer
devilspie & sleep 10 && pkill -f "devilspie"
и сценарий teamviewer.sh, который вы видите ниже, должен быть помещен в корневую папку тюрьмы (номер IP192.168.1.7):
/корень/тимвьювер
#/bin/sh
export DISPLAY=192.168.1.6:0
/usr/bin/teamviewer &
Теперь кажется, что проблема внутри этой строки:
На самом деле, если я дам эту команду:
или эта команда:
socat -d -d TCP-LISTEN:6000,fork,bind=192.168.1.6 UNIX-CONNECT:/tmp/.X11-unix/X0 &
Я получаю тот же результат, команда выполняется и остается там, пока я ее не убью. Поскольку под ним находятся различные команды, ожидающие выполнения, такое поведение не является хорошим.
ниже вы можете увидеть, что я имею в виду:
команда зависла на терминале, и это нехорошо. Сценарий, который я должен запустить на хосте, состоит из списка команд, которые должны выполняться одна за другой.
То же самое плохое поведение происходит с этой командой:
Подводя итог: я хочу, чтобы эта команда:
socat -d -d TCP-LISTEN:6000,fork,bind=192.168.1.6 UNIX-CONNECT:/tmp/.X11-unix/X0
выполняется, то он должен быть активен между процессами и скрипт должен идти дальше, выполняя команды ниже:
jail -c devuan
jexec devuan /bin/bash ~/teamviewer
devilspie & sleep 10 && pkill -f "devilspie"
Спасибо.