<div dir="auto">Hi,<div dir="auto"><br></div><div dir="auto">$INVOCATION_ID is quite a reliable source for this.</div><div dir="auto">I do not what if there are other behavior changes apart from forking you want to do but it is usually better to do those at a finer resolution than just a big check for systemd. First and foremost there are also other service managers which make forking unnecessary, the same hold for running your program in a container (e.g. Docker) - a cli flag might be a better option. If you want to use journald, check for it specifically using the socket or $JOURNAL_STREAM, for socket activation check $LISTEN_FDS, etc.</div><div dir="auto"><br></div><div dir="auto">Cheers, Nils</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Mon, Jun 30, 2025, 13:30 Stef Bon <<a href="mailto:stefbon@gmail.com">stefbon@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
it's important for a program to detect it has been started by systemd.<br>
For example it does not have to fork since it has already been forked.<br>
<br>
I've written a test script, which calls env, and there are a few<br>
unique environment variables which are an indication it has been<br>
started by systemd: SYSTEMD_EXEC_PID and INVOCATION_ID.<br>
<br>
Is it a good way to test these environment vars (to detect started by<br>
systemd) or is there a better way?<br>
<br>
S. Bon<br>
</blockquote></div>