Разница между типами запуска сервиса simple и forking в systemd заключается в поведении процессов. habr.com
Type=simple (значение по умолчанию): habr.com
- Процесс, указанный в ExecStart, считается главным. habr.com Systemd считает сервис запущенным (active) и готовым к работе сразу после того, как породил этот процесс. habr.com Он не ждёт никаких подтверждений от самого процесса. habr.com
- Подходит для простых демонов, которые не превращаются сами в фоновый процесс. habr.com Лучше не использовать данный тип, если процесс «демонизируется» самостоятельно — systemd просто потеряет его из виду. habr.com
Type=forking: habr.com
- Процесс, указанный в ExecStart, запускается, создаёт своего потомка (fork) и сразу завершается. habr.com Systemd отслеживает завершение этого родительского процесса и после этого считает запущенным именно дочерний процесс. habr.com
- Используется для традиционных демонов, написанных под SysV init (к примеру, nginx, Apache, MySQL и прочие), которые самостоятельно отсоединяются от терминала. habr.com
Таким образом, simple подходит для сервисов, которые запускаются незамедлительно, без разветвления процесса, а forking — для сервисов, требующих запуска в фоновом режиме и управления несколькими процессами. wiki.archlinux.org sysadminium.ru