Я хочу выполнить команду в оболочке 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 &

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

ниже вы можете увидеть, что я имею в виду:

https://ibb.co/fXTCJk9

команда зависла на терминале, и это нехорошо. Сценарий, который я должен запустить на хосте, состоит из списка команд, которые должны выполняться одна за другой.

То же самое плохое поведение происходит с этой командой:

https://ibb.co/DMdw0np

Подводя итог: я хочу, чтобы эта команда:

      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"

Спасибо.

0 ответов

Другие вопросы по тегам