Чи означає те, що я втратив командний рядок, що процес все ще працює?
Малоймовірно. Процес буде мати зв'язок з віртуальним терміналом ssh, який зрештою вичерпає і знищить всі процеси, пов'язані з цим терміналом - хоча gunicorn може бути записаний таким чином, щоб він не виходив, коли контрольний термінал зникає.
Як повернутися до командного рядка, не вбиваючи цей процес?
Якщо термінал ще живий, натисніть CTRL + Z, щоб повернутися до командного рядка, а потім написати bg розмістити gunicorn у фоновому режимі (і використовувати fg щоб повернутися до процесу, щоб ви могли його вбити - напр. с CTRL+C ).
Початок його також gunicorn -w 4 myapp:app & розмістить процес у фоновому режимі оболонки негайно - хоча в залежності від сервера він може все одно бути убитий, коли сеанс ssh закінчиться. Біг nohup gunicorn -w 4 myapp:app & забезпечить виконання процесу навіть при відключенні. Прочитайте сторінку користувача nohup
Іншим варіантом є запуск процесу в терміналі, який дозволяє повторно приєднатися до нього. Ось що дозволяє вам робити екран GNU або tmux - ефективно дозволяючи відключити сеанс ssh, з'єднатися пізніше і приєднатися до існуючого термінального сеансу.
Як я можу повернутися і відстежувати процес пізніше?
Ви не можете, якщо ви не запустите процес всередині екрану GNU або сеансу tmux - у цьому випадку документи / підручники для екрана або tmux розкажуть вам деталь - або ви запустили сервер для запуску в якості служби / фону.
Як я можу врешті-решт вбити цей процес?
Більшість серверних програм матиме інтерфейс керування (наприклад, команди, які потрібно запустити), і вам доведеться знайти відповідну інформацію в документації.
Або вони інтегруються в процедури запуску linux / unix і керування службами, в цьому випадку ви керуєте ними як будь-які інші служби, наприклад, /sbin/service fooserver start /sbin/service fooserver stop на деяких дистрибутивах linux.
Або ви повинні зробити це вручну. Знайдіть цей процес, запустивши його ps -ef |grep fooserver знайти його під і вбити його, kill <the pid>. Або подивіться в документації сервера можна написати "pid-файл", коли він запускається, так що ви зможете знайти ідентифікатор процесу в цьому файлі пізніше.
Тепер, здається, що принаймні gunicorn має аргумент -D, який використовується для розміщення сервера у фоновому режимі, від'єднуючи його від терміналу, так що він не загине, коли з'єднання ssh / putty відключається. Подивитися http://gunicorn.org/configure.html#server-mechanics
Потім вам доведеться керувати / контролювати його вручну, тобто вбивати його, як я вже згадував вище, контролювати його через файл журналу, який він виробляє - або будь-який інтегрований webapp моніторингу або команди gnuicorn.
Цілком зрозуміло, що для когось пакується gnuicorn для конкретного варіанту linux / * nix, а також для написання відповідних скриптів і конфігураційних файлів, щоб інтегрувати його в нативне керування службами дистрибутива. (наприклад, стандартний сценарій у /etc/init.d/ для запуску та зупинки сервера, який використовується на багатьох
linux'es)