您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python中subprocess.Popen preexec_fn和start_new_session之间的区别

python中subprocess.Popen preexec_fn和start_new_session之间的区别

根据官方的Python文档

在应用程序中存在线程的情况下,preexec_fn参数不安全使用。在调用exec之前,子进程可能会死锁。如果您必须使用它,请保持琐碎!最小化您要调用的库的数量

如果您需要为孩子修改环境,请使用env参数,而不要在preexec_fn中使用它。start_new_session参数可以代替preexec_fn以前在子级中调用os.setsid()的常用用法

因此,我想您的问题的答案start_new_session是引入该方法来代替用于通过preexec_fn设置会话ID的常见操作os.setsid(),这不是线程安全的。

python 2022/1/1 18:48:54 有441人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶