У меня есть сценарий Python, который видит множество файлов:

for year in range(2010, 2015):
    for month in range(1, 13):
        filename = url
        filename += "/T%s%s_BNFT.CSV" % (year, month)
        os.system('wget %s' % filename)

Я запускаю это на удаленном сервере, в фоновом режиме с помощью python script_name.py & .

Если мне нужно убить этот скрипт на полпути, я пытаюсь использовать Ctrl+X, Ctrl+C но кажется, что он убивает только текущий wget (и не совсем, если он уже запущен). Я должен нажать Ctrl+X, Ctrl+C 20 или 30 раз, чтобы убить сценарий.

Я также могу открыть новый сеанс и сделать ps aux | grep script_name.py и затем kill <pid> чтобы убить скрипт. Но открытие нового сеанса трудоемко и мучительно.

Есть ли более простой способ убить фоновый скрипт, используя сочетания клавиш? В качестве альтернативы, есть ли способ запустить ps aux из текущего сеанса?

1 ответ1

0

Я не думаю, что вы сможете легко добиться этого с помощью сочетания клавиш.

Однако, поскольку вы запускаете скрипт в фоновом режиме, вы не можете просто запустить что-то вроде

kill $( ps aux | grep '[s]cript_name' | awk '{ print $2 }' );

В текущем сеансе?

Может сделать это проще, поместив это в скрипт оболочки с именем kill_script_name

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .