[systemd-devel] killproc, pidofproc, ExecStop, ExecStart -advice please

Mantas Mikulėnas grawity at gmail.com
Mon Feb 18 11:49:55 PST 2013


On Mon, Feb 18, 2013 at 9:28 PM, lux-integ <lux-integ at btconnect.com> wrote:
> Greetings,
>
> I am new to this list and learning to write systemd service scripts.  I would
> like to know if there  are equivalents for the shell functions:-
>
> killproc()
> pidofproc()
>
> used heavily in init scripts and as described in linuxstandardbase (url below)
> http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-
> generic/iniscrptfunc.html
>
> If there are no such equivalents I would be gateful for guidance on the best
> way to stop daemons  specifying their process_id and  removing  the said files
> when the daemon has stopped.

Usually you do not need such functions *at all* – systemd will
automatically find and kill the main process of your service. (They're
tracked using cgroups; you can see the processes of every service in
its `systemctl status`, or all services at once using `systemd-cgls`.)

For example, to start & stop the Racoon daemon, only these three lines
are needed:

    [Service]
    Type=forking
    ExecStart=/usr/sbin/racoon

If the service writes a pidfile, you can tell systemd to use that with
the PIDFile= option.

> Also advice would be appreciated  on  whether in such scripts implementing
> ExecStop=
> then
> ExecStart=
>
> is the recommended way to restart daemons or whether/if there are generic
> 'systemd' ways   to restart daemons.

The recommended way is to use `systemctl restart` (which simply stops
the daemon and starts it again).

--
Mantas Mikulėnas


More information about the systemd-devel mailing list