[systemd-devel] Service unit issue: starts manually but doesn't start on boot
Peter Li
chinasaurli at gmail.com
Thu Apr 18 23:06:43 PDT 2013
Greetings, I hope this issue is familiar to someone here. I wrote a
unit file for a service called "wsgw". It starts fine with `systemctl
start wsgw`, and `systemctl enable wsgw` goes smoothly, but the service
doesn't start on boot.
My only diagnostic so far has been running `systemctl status wsgw`. When
I do this after a boot, I get the following:
wsgw.service - WebSockets Gateway for pianod
Loaded: loaded (/usr/lib/systemd/system/wsgw.service; enabled)
Active: inactive (dead) since Thu, 18 Apr 2013 21:06:37
-0700; 1h 0min ago
Process: 874 ExecStart=/usr/sbin/wsgw $PORT $LOGGING $SERVICES
(code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/wsgw.service
When I then run `systemctl start wsgw; systemctl status wsgw` I get:
wsgw.service - WebSockets Gateway for pianod
Loaded: loaded (/usr/lib/systemd/system/wsgw.service; enabled)
Active: active (running) since Thu, 18 Apr 2013 22:09:40
-0700; 7ms ago
Main PID: 2565 (wsgw)
CGroup: name=systemd:/system/wsgw.service
? 2565 /usr/sbin/wsgw -p 8000 pianod,localhost,4445,text
One thing I notice between the failed-on-boot and
succeeded-on-manual-start cases is that the environment variables appear
to be unsubstituted in the failed-on-boot case. But of course, one
looks like it is reprinting the ExecStart line, and one looks like it's
listing the actual command for the successfully running process, so this
difference may be expected.
I have confirmed that executing the wsgw with no arguments or blank
arguments does cause an exit with status 0. It seems like lots of
invalid arguments all produce exits with status 0 actually, so probably
I should talk to the main developer about making these exit codes more
helpful.
Also the timestamp on the failed status is wrong; it's an hour earlier
than it should be.
I have another service with a very similar setup that doesn't have this
issue. Links to the two unit files and the EnvironmentFile for each
(wsgw is the one with the issue, pianod is very similar but works on boot):
http://svn.deviousfish.com/wsgw/contrib/wsgw.service
http://svn.deviousfish.com/wsgw/contrib/wsgw.env
http://svn.deviousfish.com/pianod/pianod/contrib/pianod.service
http://svn.deviousfish.com/pianod/pianod/contrib/pianod.env
I've run `systemd --test --system --unit=multi-user.target` and compared
the wsgw and pianod sections of output and no significant differences
jump out at me.
I have this issue on both a RaspberryPi running ArchLinuxARM, and an
x86_64 running FedoraCore17.
Thanks for reading,
Peter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20130418/40f81add/attachment.html>
More information about the systemd-devel
mailing list