After having a lot of sysvinit experience, the transition to setting up my own systemd services has been brutal. What finally clicked for me was that I had this habit of building mini-services based on shellscripts; and systemd goes out of its way to deliberately break those: it wants a single stable process to monitor; and if it sniffs out that you are doing some sketchy things that forks in ways it disapproves of, it is going to shut the whole thing down.
After having a lot of sysvinit experience, the transition to setting up my own systemd services has been brutal. What finally clicked for me was that I had this habit of building mini-services based on shellscripts; and systemd goes out of its way to deliberately break those: it wants a single stable process to monitor; and if it sniffs out that you are doing some sketchy things that forks in ways it disapproves of, it is going to shut the whole thing down.