@Nick C Thanks for the advice. I changed my settings back to type=simple and checked journalctl, it says Started Service but it is not in the list of processes and doesn't work.. I made a bash script and tried to use that for the ExecStart parameter but it also doesn't get started as a service with same log outputs. Not really sure, may just install something specifically for this purpose.
Do you daemonize the process or not?
I start Daemons using (you can start any process from this one):
You can safely use this type for any process, it will NOT hold systemd from directly starting other processes as it will ignore the return code from these processes. Systemd will not accept or execute any "Restart=always" or other types of restarts for "Type=forking".
i start the "main" applications that should be kept alive at all times using:
These kind of programs stop (hold back future processes) all futher systemd processes that are "After=" this service from being run. They
will run when this "main" application is stopped (or crashed).
Sourced from systemd docs:
If set to simple (the default if ExecStart= is specified but neither Type= nor BusName= are), the service manager will consider the unit started immediately after the main service process has been forked off. It is expected that the process configured with ExecStart= is the main process of the service. In this mode, if the process offers functionality to other processes on the system, its communication channels should be installed before the service is started up (e.g. sockets set up by systemd, via socket activation), as the service manager will immediately proceed starting follow-up units, right after creating the main service process, and before executing the service's binary. Note that this means systemctl start command lines for simple services will report success even if the service's binary cannot be invoked successfully (for example because the selected User= doesn't exist, or the service binary is missing).