Продовжуйте роботу програми після закриття консолі після запуску програми [копіювати]


8

Можливий дублікат:
Як я повністю від'єднати процес від Terminal?

У мене програма, що працює в консолі Unix на віддаленому комп'ютері Unix. Я (нерозумно) не запускав це за допомогою nohup &, і тепер мені потрібно закрити локальну консоль.

Чи є спосіб, щоб він продовжував працювати віддалено після закриття локальної консолі?

Відповіді:


12

Якщо ваша оболонка є bash, ви можете їх використовувати disown. Ctrl-Z призупинить процес, disown -hщоб потім не отримати SIGHUP.


Блискуче рішення. Працювало :-)
Thrawn

3
Цікаво: якщо процес призупинено, чи не слід в кінцевому підсумку цього дотримуватися bgчи щось подібне? Або disown -hвідновити це також?
Ар'ян

Чи спрацює це, якщо процес працює всередині screen? Я хотів би продовжувати запускати цей процес у своєму звичайному xterm.
голоси

Після відмови в IIRC він не буде підключений до жодного терміналу
Дуглас Лідер

5

У Solaris 9 ви можете скористатися nohup -p <pid>запущеним процесом. Ось цікаве пояснення реалізації. Я не знаю, чи це було реалізовано в будь-яких інших Уніках.


nohup: недійсний варіант - p Не працює на gentoo, ubuntu чи fedora (уніксеси, на які я це спробував), але все-таки дякую :-) Добре знати, що Solaris має це.
Закинуто

2

Ctrl-Z призупинить процес, а потім bgзмусить програму відійти на другий план і продовжувати працювати, поки вона не завершиться.


Проблема полягає в тому, що якщо я закрию консоль, фонові процеси припиняться. Мені потрібно щось, що від'єднує процес від консолі, як це робить nohup, але після того, як процес розпочався :-)
Thrawn

І я не думаю, що "nohup bg &" працюватиме також :-(
Thrawn

1
Я спробував це на одній із моїх систем, і він не працював нормально, коли я вийшов (просто використовувався du / >> tempяк тестова програма), але я розумію, що я вагаюся, якщо ви не хочете втрачати програму або її результати.
Матрікс Мол

2

Якщо ви можете дозволити собі зупинити програму та перезапустити її перед виходом із системи, тоді зупиніть її та перезавантажте через екран , що є обов'язковим для всіх, хто використовує віддалені підключення до хостів Unix.


1
Я думаю, що головна проблема тут полягає саме в тому, що він хотів би не зупиняти програму.
Gnoupi

1
Так, я хотів би, щоб програма не була зупинена :-)
Thrawn

Я б дуже рекомендував екран для подальшого використання такої ситуації (я майже завжди маю сеанс екрану, який працює на будь-якій системі, у мене є sehll o).
Matrix Mole

1
Через кілька років я зрозумів, що я дурень не користуюся екраном :-)
Thrawn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.