
Я пытаюсь запустить программу с помощью 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
, который позволяет вам запускать программу в виртуальном терминале, от которого вы можете отключиться и подключиться снова позже.