Web lists-archives.com

Re: systemd can't start a dæmon and doesn't give any error either




On Mon, Oct 08, 2018 at 06:17:52PM +0800, Weiwu Zhang wrote:
> To show this dæmon itself is properly configured and runs fine on Debian 9.5:
> 
> # su bitcoin
> $ cd
> $ /usr/local/bin/bitcoind -daemon
> Bitcoin server starting
> $ pgrep bitcoind
> 3946

You've used an option named "-daemon".  I am guessing that this causes
the process to "daemonize" itself (auto-background, self-background).

This is what you want if you're on a BSD system in 1989.

This is NOT what you want if you're on a systemd system in 2018.

If you omit the -daemon option, does the process run in the foreground?
If so, THAT is what you want.

> However, it won't start if converted to a systemd service:
> 
> # cat /etc/systemd/system/bitcoin.service
> [Unit]
> Description=bitcoind
> After=syslog.target
> 
> [Service]
> User=bitcoin
> ExecStart=/usr/local/bin/bitcoind -daemon
> 
> [Install]
> WantedBy=multi-user.target

You did not specify what TYPE of service this is.  Since you didn't specify
a Type= option, systemd uses the default, which is "simple", which means
that it expects a single process to run in the foreground.

So: either omit that "-daemon" option, or whatever it takes to make the
process run in the foreground like a good process should.

-OR-

Tell systemd that your process uses ancient, broken behavior
(self-backgrounding) by specifying "Type=forking".

I know which one I would pick.  Assuming that dropping -daemon does what
I am guessing it does.  (If my guess is wrong, then you may be forced
to use a non-simple Type= option.)