I am running Arch Linux. I have a service on
/etc/systemd/system/ with the following description
[Unit] After=network.target [Service] Type=simple ExecStart=(...)service.py ExecReload=(...)service.py Restart=always
I set it to start after the network is established as it depends on a network connection.
When I boot the PC, the service is always inactive. If I start it manually it runs perfectly. It also restarts if there is some internal error. Why does it not start on boot?
When enabling the service I get this message:
➜ ~ systemctl enable py_service.service
The unit files have no installation config (WantedBy, RequiredBy, Also, Alias settings in the [Install] section, and DefaultInstance for template units). This means they are not meant to be enabled using systemctl. Possible reasons for having this kind of units are: 1) A unit may be statically enabled by being symlinked from another unit's .wants/ or .requires/ directory. 2) A unit's purpose may be to act as a helper for some other unit which has a requirement dependency on it. 3) A unit may be started when needed via activation (socket, path, timer, D-Bus, udev, scripted systemctl call, ...). 4) In case of template units, the unit is meant to be enabled with some instance name specified.
1) it is not symlinked
2) it is not a helper
3) I thought this was covered by the
4) I do not know what this means
EDIT 2 Following the suggestion of @dustball, I edited to:
cat /etc/systemd/system/py_service.service [Install] WantedBy=multi-user.target [Unit] After=network.target [Service] Type=simple ExecStart=(...)service.py ExecReload=(...)service.py Restart=always
But it did not start on boot :(
EDIT 3 The above configuration works, I forgot to enable it (thanks to @Daniel H) reload the services using
sudo systemctl daemon-reload
and then enable it using
systemctl enable py_service.service