Почему мой скрипт python все еще работает в фоновом режиме на EC2 даже после того, как я выйду из замазки?

Согласно этому вопросу о SE , сценарий, который я запускаю, должен быть завершен с помощью сеанса моего терминала, если я не использую nohup или screen. Однако когда я

sudo python b.py &

где b.py:

from time import gmtime, strftime
import datetime
import time
import sys
import logging

logging.basicConfig(filename='test.log',level=logging.WARNING,format='%(message)s')
logging.warning('start')

while True:
    s = (datetime.datetime.now().minute) *60 + datetime.datetime.now().second
    if ((s)%(60*5) <= 6) : #True: #
        logging.error((strftime("%Y-%m-%d %H:%M:%S", gmtime()))) 
    time.sleep(5)

тогда

exit

и снова войдите в систему, используя шпатлевку, test.log все еще обновляется, и когда я

ps -Alf | grep python,

появляются процессы:

4 S root     11179     1  0  80   0 - 16974 poll_s 15:44 ?        00:00:00 sudo python b.py
4 S root     11180 11179  0  80   0 - 10652 poll_s 15:44 ?        00:00:00 python b.py

хотя команда jobs ничего не возвращает.

почему это так? по опыту других, b.py должен был остановиться, когда я вышел из терминала. Я использую Ubuntu AMI на микро-экземпляре.

Спасибо!


person user3576249    schedule 26.04.2014    source источник
comment
Это кажется более актуальным для superuser.com   -  person devnull    schedule 26.04.2014


Ответы (1)


& Помещает его в фоновый режим, поэтому он будет продолжать работать до тех пор, пока его pid не будет убит, а поскольку вы запустили его с помощью sudo, вам также нужно будет убить pid с помощью sudo.

убить -9 11179

person dawgyg    schedule 16.03.2015