Why don't the following options work for you?
Configures the time to wait for start-up and stop. If a daemon service does not signal start-up completion within the configured time the service will be considered failed and be shut down again. If a service is asked to stop but does not terminate in the specified time it will be terminated forcibly via SIGTERM, and after another delay of this time with SIGKILL. (See KillMode= below.) Takes a unit-less value in seconds, or a time span value such as "5min 20s". Pass 0 to disable the timeout logic.
Defaults to 90s.
Specifies how processes of this service shall be killed. One of control-group, process, none.
If set to control-group all remaining processes in the control group of this service will be terminated on service stop, after the stop command (as configured with ExecStop=) is executed. If set to process only the main process itself is killed. If set to none no process is killed. In this case only the stop command will be executed on service stop, but no process be killed otherwise. Processes remaining alive after stop are left in their control group and the control group continues to exist after stop unless it is empty. Defaults to control-group.
Processes will first be terminated via SIGTERM (unless the signal to send is changed via KillSignal=). If then after a delay (configured via the TimeoutSec= option) processes still remain, the termination request is repeated with the SIGKILL signal (unless this is disabled via the SendSIGKILL= option). See kill(2) for more information.
Specifies which signal to use when killing a service. Defaults to SIGTERM.
Specifies whether to send SIGKILL to remaining processes after a timeout, if the normal shutdown procedure left processes of the service around. Takes a boolean value. Defaults to "yes".
Emphasis is mine. These are taken from the systemd.service man page.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds