我有一个Python 3脚本,其中包括使用某些命令行参数启动Chrome。代码的相关部分如下所示:
import multiprocessing as mp
from subprocess import call
import time
import logging
def launch_tab(datadir, url):
# Constructs the command line and launches Chrome via subprocess.call()
def open_browser(urls):
'''Arranges for Chrome to be launched in a subprocess with the specified
URLs, using the already-configured profile directory.
urls: a list of URLs to be loaded one at a time.'''
first_run = True
for tab in urls:
logging.debug('open_browser: {}'.format(tab))
proc = mp.Process(name=tab, target=launch_tab, args=(config.chromedir, tab))
proc.start()
if first_run:
first_run = False
time.sleep(10)
else:
time.sleep(0.5)
我希望启动Chrome的子流程完全独立于主流程,以便在启动Chrome后立即返回命令提示符。启动Chrome后,我的脚本已完成其工作。我想过使用daemonize
模块,但它显然不适用于Python 3.
我没有与multiprocessing
模块结合。产生所需最终结果的任何合理方法都是可以接受的。切换到Python 2所以我可以尝试daemonize
太难了。
该脚本只能在Linux上运行,因此可移植性不是问题。