I added logging to provide more informative output. You can adjust the log level and format to suit your needs.
I added logging to provide more informative output. You can adjust the log level and format to suit your needs.
I added try-except blocks to handle potential errors when starting subprocesses.
I defined a separate function for signal handling to improve code organization.
I added a main function to serve as the entry point for the script.
I added logging to provide more informative output. You can adjust the log level and format to suit your needs. I added logging to provide more informative output. You can adjust the log level and format to suit your needs. I added try-except blocks to handle potential errors when starting subprocesses. I defined a separate function for signal handling to improve code organization. I added a main function to serve as the entry point for the script.