Если я запускаю программу в bash, я могу приостановить ее, нажав Ctrl kbd> + Z kbd>. Если я хочу оставить программу работающей, я могу использовать команду bg
. Есть ли какой-то способ напрямую поместить программу в фоновый режим, не вводя bg
?
Уточнение : я хочу поместить программу в фоновый режим, когда она уже запущена без приостановки его.
Я не думаю, что можно переместить запущенную программу в фоновый режим (пока процесс находится в состоянии выполнения).
Однако есть приложение под названием GNU-Screen , с помощью которого вы можете запускать любое количество консольных приложений - интерактивных командных оболочек, приложений на основе curses, текстовых редакторов и т. Д. - в пределах одного терминала. .
Вот хороший учебник на GNU-Screen.
Обратите внимание, что он не выполняет именно то, что вы просили, но в любом случае служит цели.
Пример:
Вот реализация того, что вы просили, используя GNU-Screen.
screen
vlc
. Это запустит процесс в этом окне. Насколько мне известно, вы можете запустить его, а затем добавить и после этого следующим образом: myprogram &
Однако я могу быть очень неправ здесь.
[РЕДАКТИРОВАТЬ]: При более внимательном рассмотрении этого, если вы запустите выше, приложение закроется, когда вы закроете терминал. Если вы хотите, чтобы приложение работало в фоновом режиме, то, насколько мне известно, приложение должно быть написано таким образом, чтобы поддерживать поведение демона.
[РЕДАКТИРОВАТЬ 2]: nohup command &
, кажется, ближе к тому, что вы хотите достичь. Nohup позволит приложению запускаться и игнорирует его ввод и перенаправляет его вывод в файл с именем nohup.out
в текущем каталоге.
Это не может быть реальным ответом. Интересно, чем отличается Bash между Ubuntu и MSYS.
Я запускаю MSYS, и когда я запускаю Application/Chrome &
, он сразу переходит в фоновый процесс. Я могу использовать MSYS bash, когда начнет мигать следующая подсказка.
И это вопросы Переместить запущенную программу в фоновый режим с похожими намерениями?