Use nscd service files from glibc sources and make the service forking

Currently the nscd service is installed in systemd as a simple
service, which means that it is able to handle its own errors and does
not quit.  Since nscd does not fit that description, i.e. it can exit
on errors like, say, failing to parse nscd.conf, it should be declared
as forking instead.
This commit is contained in:
Siddhesh Poyarekar 2014-02-27 00:31:15 +05:30
commit bdbcf83e82
5 changed files with 64 additions and 30 deletions

41
glibc-rh1070416.patch Normal file
View file

@ -0,0 +1,41 @@
diff --git a/nscd/nscd.service b/nscd/nscd.service
index 99c7563..a970186 100644
--- a/nscd/nscd.service
+++ b/nscd/nscd.service
@@ -2,17 +2,20 @@
[Unit]
Description=Name Service Cache Daemon
+After=syslog.target
[Service]
-Type=simple
-ExecStart=/usr/sbin/nscd --foreground
+Type=forking
+ExecStart=/usr/sbin/nscd
ExecStop=/usr/sbin/nscd --shutdown
ExecReload=/usr/sbin/nscd -i passwd
ExecReload=/usr/sbin/nscd -i group
ExecReload=/usr/sbin/nscd -i hosts
ExecReload=/usr/sbin/nscd -i services
+ExecReload=/usr/sbin/nscd -i netgroup
Restart=always
PIDFile=/run/nscd/nscd.pid
[Install]
WantedBy=multi-user.target
+Also=nscd.socket
diff --git a/nscd/nscd.socket b/nscd/nscd.socket
new file mode 100644
index 0000000..7e512d5
--- /dev/null
+++ b/nscd/nscd.socket
@@ -0,0 +1,8 @@
+[Unit]
+Description=Name Service Cache Daemon Socket
+
+[Socket]
+ListenDatagram=/var/run/nscd/socket
+
+[Install]
+WantedBy=sockets.target