Выполнить команду с помощью xterm и закрыть

Выполнить команду с помощью xterm и закрыть

Я пытаюсь запустить программу с помощью xterm, а затем закрыть xterm с запущенной программой, но, похоже, это работает не так, как я ожидал.

В bash есть опция, а bash -c [command]в xterm тоже что-то есть? Сейчас я использую, xterm -e [command]но это держит окно xterm открытым, пока моя программа не завершится. Но я хочу открыть его, запустить программу, закрыть ее и оставить программу работающей.

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

Есть ли способ это сделать?

решение1

Я не думаю, что Вам это нужно xpra. sshЭто хороший выбор .

ssh user@hostname /path/to/program

или ssh+screen

ssh user@hostname "screen /path/to/program"

или xpra+screen

xpra user@hostname "screen /path/to/program"

решение2

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

«Начать xterm, чтобы можно было начать процесс, а затем выйти xterm» сокращается до «начать процесс», и его можно xtermполностью вынести за скобки.

Я предполагаю, что вы ищете

nohup command >command.out 2>command.err &

который запускается commandкак фоновый процесс (из-за &) с выводом command.outи сообщениями об ошибках, отправляемыми в command.err.

Если вас не волнует вывод или обработка сигнала с помощью nohup, вы можете просто захотеть

command &

Это не позволяет вам взаимодействовать с фоновой командой (но и закрытие тоже не позволяет, xtermтак что, полагаю, вам это не нужно); если вы хотите иметь возможность это делать, рассмотрите screenили tmux, который позволяет вам запускать программу в виртуальном терминале, от которого вы можете отключиться и подключиться снова позже.

Связанный контент