Issue27069
Created on 2016-05-20 12:23 by vstinner, last changed 2022-04-11 14:58 by admin. This issue is now closed.
| Messages (7) | |||
|---|---|---|---|
| msg265939 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2016-05-20 12:23 | |
The webbrowser opens almost all browsers in background mode, it looks like only Elinks is not opened in this mode. Problem: the webbrowser doesn't read the exit status of the browser, and so create zombi process. On Python 3.6, the subprocess module now emits a ResourceWarning in this case (issue #26741). For example, the following script shows a zombi process ("<defunc>"): --- import webbrowser, os b = webbrowser.get("firefox") b.open("https://bugs.python.org/issue26741") b = None os.system("ps ax|grep firefox") input("press ENTER when firefox exited") os.system("ps ax|grep firefox") --- I guess that Python should use os.fork() somehow to fix this issue. Another option is to hack the Popen object to not display the warning, but I don't think that it's a safe option. See also the issue #27068 "Add a detach() method to subprocess.Popen", but I don't think that it is directly related to background processes run by webbrowser. |
|||
| msg265944 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2016-05-20 13:33 | |
I checked how "xdg-open http://www.python.org/" works. It looks like the command works as webbrowser: create a child process "firefox URL", but then it waits until the command completes. In fact, "firefox URL" exits quickly. So we can try "background = False" for firefox. Well, at least with my Firefox 46.0.1. |
|||
| msg265945 - (view) | Author: Martin Panter (martin.panter) * ![]() |
Date: 2016-05-20 14:07 | |
I think the Firefox command will exit immediately if it just signals an existing Firefox process and window, but becomes the main Firefox process if there isn’t already one running. Background = False sounds like it won’t help. Don’t we want the opposite? |
|||
| msg283326 - (view) | Author: Brendan Donegan (brendan-donegan) * | Date: 2016-12-15 15:33 | |
This appears to be Firefox specific? At least:
b = webbrowser.get("chromium-browser")
b.open("https://bugs.python.org/issue26741")
returns simply:
True
With no exception
|
|||
| msg313085 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * ![]() |
Date: 2018-03-01 08:12 | |
Isn't this a duplicate of issue5993? |
|||
| msg314015 - (view) | Author: Martin Panter (martin.panter) * ![]() |
Date: 2018-03-17 21:29 | |
It does look similar. They probably could be merged. The main difference is in Issue 5993 Eivind suggested to somehow use a “wait” system call, while here Victor suggested “fork” (perhaps to orphan a grandchild process?). |
|||
| msg402388 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2021-09-21 22:15 | |
Python 3.6 was released 5 years ago. Nobody complained about ResourceWarning. While it would be nice to fix the issue, nobody managed to write a fix in 5 years and this issue has no activity for 3 years. I close the issue. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-04-11 14:58:31 | admin | set | github: 71256 |
| 2021-09-21 22:15:08 | vstinner | set | status: open -> closed resolution: out of date messages: + msg402388 stage: resolved |
| 2020-01-11 17:24:52 | kernc | set | nosy:
+ kernc versions: + Python 3.7, Python 3.8, Python 3.9 |
| 2018-03-17 21:29:49 | martin.panter | set | messages: + msg314015 |
| 2018-03-01 08:12:06 | serhiy.storchaka | set | nosy:
+ serhiy.storchaka messages: + msg313085 |
| 2016-12-15 15:33:58 | brendan-donegan | set | nosy:
+ brendan-donegan messages: + msg283326 |
| 2016-05-20 14:07:35 | martin.panter | set | messages: + msg265945 |
| 2016-05-20 13:33:10 | vstinner | set | messages: + msg265944 |
| 2016-05-20 12:23:17 | vstinner | create | |
