Запущенный Python в отдельном процессе

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

7
задан Bialecki 2 June 2010 в 12:19
поделиться

4 ответа

Просто используйте амперсанд (&), чтобы запустить процесс Python в фоновом режиме. Python уже выполняется в отдельном процессе от BASH-скрипта, поэтому говорить, что нужно запустить его "в отдельном потоке", не имеет особого смысла - я предполагаю, что вы просто хотите, чтобы он выполнялся в фоновом режиме:

#! /bin/bash
python path/to/python/program.py &

Обратите внимание, что в результате выполнения вышеуказанных действий текст может быть выведен на консоль. Вы можете обойти это, используя перенаправление, чтобы перенаправить как stdout, так и stderr в файл. For example:

#! /bin/bash
python path/to/python/program.py > results.txt 2> errors.log &
19
ответ дан 6 December 2019 в 06:23
поделиться

Ваш жаргон все путает. Но в bash вы можете запустить процесс в фоновом режиме, добавив &:

print foo.py &
2
ответ дан 6 December 2019 в 06:23
поделиться

Лучший способ сделать это - сделать это на python! Посмотрите на многопроцессные библиотеки.

Вот простой пример из ссылок выше:

from multiprocessing import Process

def f(name):
    print 'hello', name

if __name__ == '__main__':
    p = Process(target=f, args=('bob',))
    p.start()
    p.join()
4
ответ дан 6 December 2019 в 06:23
поделиться

bash не умеет работать с потоками - зато он отлично справляется с процессами:

python whatever.py &

& в конце просто означает "не ждите завершения подпроцесса" -- bash все равно выполнит команду в отдельном процессе, просто обычно он ждет завершения этого отдельного процесса (так работают все оболочки Unix с незапамятных времен).

3
ответ дан 6 December 2019 в 06:23
поделиться
Другие вопросы по тегам:

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