Depende da distribuição, mas as distribuições baseadas em RHEL usam uma função Bash da qual são originárias de /etc/rc.d/init.d/functions
, que é chamado de daemon
, que é apenas um wrapper em torno do comando runuser
. Pelo que eu posso dizer nos arquivos de origem, ele é funcionalmente idêntico ao su
na maioria dos casos, ele simplesmente não passa pelo PAM (provavelmente para evitar alguns problemas de galinha e ovo em certos casos).
Isso não vai realmente responder às suas objeções, mas é como os serviços fazem isso. A limpeza e conformidade geral com a lógica que você está querendo é parte da motivação para coisas como systemd