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

911
Nico

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

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

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

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

0
Не могли бы вы попробовать `xterm -e 'nohup sleep 5000'` и посмотреть, закрывается ли` xterm` и оставляет ли процесс позади? dsstorefile1 6 лет назад 0
Это выглядело хорошо с первой попытки, даже если казалось, что я получил открытую ветреную копию на одной машине перед другой и не открыл новую. Но теперь я могу заставить его работать больше с nohup. Какой точный синтаксис? Я попробовал `xterm -e 'nohup sleep 5000 / path / to / program'` Но потом я только попробовал` xterm -e' / path / to / program'`, он снова работает с нежелательным окном xterm. Nico 6 лет назад 0
`Sleep 5000` была просто примером команды. dsstorefile1 6 лет назад 0

2 ответа на вопрос

0
Tomasz Jakub Rup

Я не думаю, что тебе нужно 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" 
Это не помогает мне, к сожалению, я связан с XPRA. Nico 6 лет назад 0
@Nico `xpra` +` screen` не работает? Tomasz Jakub Rup 6 лет назад 0
0
tripleee

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

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

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

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

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

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

command & 

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

Да, мне нужен терминал. Я подключаюсь к другому ПК через xpra и вызываю программу, но эту программу нужно запустить в терминале Nico 6 лет назад 0
Тогда откуда вы запускаете `xterm` и почему вы не можете запустить` xpra` оттуда? tripleee 6 лет назад 0
Я на ноутбуке в моей сети оттуда я запускаю xpra на другую рабочую станцию ​​в моей сети. На этой рабочей станции я запускаю эту программу и просматриваю ее через xpra на этом ноутбуке, но программа должна быть запущена с xterm, но я не хочу видеть это окно xterm. Nico 6 лет назад 0
Нет программ, которые нужно запускать с помощью `xterm`. Я полагаю, вам сказали, что вам нужно `xpra где-нибудь xterm что-нибудь`, чтобы запустить` кое-что` в `где-нибудь`, но это, вообще говоря, неверно. Ответ, который вы уже получили с `ssh где-то что-то &`, является правильным и исчерпывающим, и если он не работает для вас, то в вашем вопросе отсутствуют некоторые важные детали. tripleee 6 лет назад 0
Программа написана самостоятельно и должна быть запущена через xterm. У меня вопрос в том, что не хватает важных деталей, вы просто не примете, что ваш ответ мне не поможет. Я рад, что этот форум существует, и я уже получил много хороших советов, но почему некоторые ребята не принимают мои требования? Nico 6 лет назад 0
Я хочу запустить xterm через xpra, и в этом xterm мне нужно запустить программу, а затем я хочу закрыть xterm, но программа должна остаться в живых. Nico 6 лет назад 0
Может быть, это нормально, чтобы переместить этот терминал, где он не появляется. Это тоже должно работать, но я не хочу это видеть Nico 6 лет назад 0
Вы продолжаете говорить это, и я продолжаю говорить, что это не может быть точно правдой. tripleee 6 лет назад 0
Что такое "не правда"? Что у меня есть это требование? Я не хочу решения проблемы, которой у меня нет. Я хочу запустить программу с xpra через xterm, а затем сделать xterm "невидимым", однако ... Nico 6 лет назад 0
Вы продолжаете говорить, что * обязаны * использовать `xterm` для запуска этой программы, и я говорю вам, что это не имеет смысла. Либо программе требуется графический интерфейс пользователя (который `xterm` не предоставляет, хотя, если вы сможете запустить` xterm`, вы также сможете запускать другие графические клиенты), либо он этого не делает (в этом случае это не так "). независимо от того, какой терминал или другая консоль используется для запуска программы, и поэтому `xterm` также не нужен, и должно быть достаточно` ssh` или аналогичного). tripleee 6 лет назад 0

Похожие вопросы