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

Некоторые программы сразу возвращаются при запуске из командной строки, Firefox, например. Большинство утилит (и все программы, которые я записал) связывается с оболочкой, которая создала их. Если Вы управляете-c командной строкой, мертвыми программы.

Что необходимо добавить к программе или сценарию оболочки для получения поведения возврата сразу? Я предполагаю, что задаю два вопроса там, один для сценариев оболочки и один для генерала, если они отличаются. Мне особенно было бы интересно знать, существует ли способ заставить исполняемую банку делать это.

Я почти смущен, чтобы попросить, что один, но я не могу найти ответ сам.

Спасибо!

5
задан rogerdpack 24 June 2015 в 04:58
поделиться

4 ответа

Для исполняемой программы (в отличие от скрипта оболочки) на Linux/Unix используйте fork() и exec(), а затем выйдите из родительского процесса, который вернется в оболочку. Подробности смотрите на man-страницах или на какой-нибудь странице типа http://www.yolinux.com/TUTORIALS/ForkExecProcesses.html.

2
ответ дан 18 December 2019 в 11:56
поделиться
start cmd 

на Windows,

cmd &

на * Nux

здесь заменяет

cmd = java -jar JarFile.jar

на * Nux FG и BG Команды - ваши друзья Также ...

7
ответ дан 18 December 2019 в 11:56
поделиться

Оберточный скрипт, состоящий только из:

your_prog_or_script &

запускает цель и немедленно выходит. Вы можете добавить nohup в начало этой строки, чтобы он продолжал работать, если оболочка выйдет из строки.

3
ответ дан 18 December 2019 в 11:56
поделиться

Вам необходимо в основном необходимость вилить процесс или создать новый поток (или притворяться)

в * Nux, вы можете сделать это с помощью & После команды, как это / Long / Script & или в Windows, вы можете создать пакетный файл, который выполняет ваши процессы, затем выходит (это делает это естественно).

Примечание. Нет особого хорошего способа ссылаться на этот процесс после того, как вы его развесывали, в основном только PS для списка процессов. Если вы хотите увидеть, что делает процесс, проверить, используя экран (другая команда Linux), которая запускает сеанс для вас и позволит вам «повторно прикрепить» к экрану.

Для этого установите экран ( Sudo APT-Get Установить экран или Экран установки yum ). Затем введите Экран , чтобы создать новую сеанс (Примечание, это будет выглядеть так, как вы ничего не делали). Затем запустите / Long / Command (без & ), затем нажмите Ctrl + A + D (в то же время), чтобы отсоединить от него ( Это все еще работает!). Затем, когда вы хотите повторно прикрепить, введите экран -R .

Кроме того, ищите флаги в любом сообщении справки, позволяющие сделать это без использования вышеуказанных вариантов (например, в Synergy Вы можете сказать Synergy - Background )

3
ответ дан 18 December 2019 в 11:56
поделиться
Другие вопросы по тегам:

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