Традиционно в системах Unix это делается путем создания файла /var/run/nameofservice.pid. При запуске вы проверяете, существует ли такой файл, если нет, создаете его и продолжаете. Затем, когда служба закрыта, файл pid удаляется.
Как видно из названия, содержимое этого файла является PID службы. Это допускает форму восстановления после ошибок, когда сервис запускается и обнаруживает, что файл PID существует, а не просто завершается, он может проверить, действительно ли существует процесс с этим PID, и если нет, то это означает, что демон сервиса произошел сбой, запустите и попробуйте восстановить систему после предыдущего сбоя.