Python Forum
Program-launching script will not close until the program it launches is closed
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Program-launching script will not close until the program it launches is closed
#1
I wasn't sure whether to post this in "General Coding Help" or "GUI", as I'm encountering the problem in a tkinter-based GUI script, but I think the issue is my limited understanding of subprocess.run(), so I thought I'd post here.

What I've written is a script that creates, populates, and saves a spreadsheet, then launches libreoffice Calc and loads the saved file, using subprocess.run(). What I want is for the python script when executed to finish and exit, closing the GUI and leaving the spreadsheet running - in essence, I'd like the script to "launch the desired program and then quit." What's happening instead the spreadsheet launches and loads its data file just fine, but the python script continues running until you close the spreadsheet. I'm wondering whether I need some additional argument to subprocess.run() to fork off a new process in which to run the spreadsheet, or something of that sort.

I've posted only the code that launches the spreadsheet, loads the saved file, and exits, for the sake of brevity.

Any idea what I'm missing.

root = Tk()
# (code omitted for brevity)
# The result have already been written into an .xlsx file, the name of which is stored in saveFileName
run_argList = ["C:\\Program Files\\LibreOffice 5\\program\\scalc.exe",saveFileName]
x = subprocess.run(run_argList)
root.quit()
Reply
#2
As described, you can't, because when a process exits, all its child processes are killed.

So the trick is therefore to have the new process started by the desktop process, which remains up until the user logs off. IIRC in Windows this is what the START command does, so you would use, if start is a distinct executable:
run_argList = ["start","C:\\Program Files\\LibreOffice 5\\program\\scalc.exe",saveFileName]
or if start is a built-in command to cmd.exe 
run_argList = ["cmd.exe","/c" "start","C:\\Program Files\\LibreOffice 5\\program\\scalc.exe",saveFileName]
in which cas you can likely simplify this to:
run_argList = ["cmd","/c" "start","scalc",saveFileName]
and let cmd.exe figure out what/where scalc is.

Btw, you can divide by two the wear of your backslash key in several ways:
  1. use a "raw" string specification by prefixing the string with r
    r"C:\Program Files\LibreOffice 5\program\scalc.exe"
  2. use a "raw" string specification by using triple quotes
    '''C:\Program Files\LibreOffice 5\program\scalc.exe'''
  3. learning that Windows is perfectly happy with forward slashes(only the CMD.EXE argument parser doesn't like them)
    'C:/Program Files/LibreOffice 5/program/scalc.exe'
    (of course if you use cmd.exe in the call above you can't use that form, but you normally don't need the path).
Unless noted otherwise, code in my posts should be understood as "coding suggestions", and its use may require more neurones than the two necessary for Ctrl-C/Ctrl-V.
Your one-stop place for all your GIMP needs: gimp-forum.net
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  SMTP email won't send. Program hangs. LarryJ 2 54 Mar-28-2026, 12:03 PM
Last Post: LarryJ
  Calling python from another program eedjsa 9 947 Dec-27-2025, 04:06 PM
Last Post: eedjsa
  Coin Flip Program Warbit 11 15,367 Oct-24-2025, 02:21 PM
Last Post: Senthilkumarkkr1
  Creating a Mindmap program J_Miller 4 11,018 Sep-23-2025, 12:00 PM
Last Post: Pedroski55
  C++ program embedding Python crashes when calling PyUnicode_AsUTF8 Alexandros 4 2,451 Sep-19-2025, 11:11 AM
Last Post: Alexandros
  PLEASE DELETE_Python OOP program structure TeddyT 0 732 Apr-26-2025, 10:00 AM
Last Post: TeddyT
  asyncio: WebSocketClient:connection closed (ERR): sent 1011 Michel777 0 1,235 Feb-04-2025, 09:22 PM
Last Post: Michel777
  How to umount on a closed distro ebolisa 5 2,126 Jan-03-2025, 03:50 AM
Last Post: DeaD_EyE
  Help with dice roll program kraco 7 5,349 Nov-26-2024, 03:07 AM
Last Post: menator01
  Pipe traceback to a C program Alexandros 0 1,195 Oct-22-2024, 12:32 PM
Last Post: Alexandros

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020