summarylogtreecommitdiffstats
path: root/slim-1.3.6-systemd-session.patch
blob: be5f529829b3326faafe28efb094173fc35eab73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
--- a/app.cpp	2013-10-23 16:19:57.074100282 -0400
+++ b/app.cpp	2013-10-23 16:33:13.302122574 -0400
@@ -829,8 +829,13 @@
 
 	StopServer();
 	RemoveLock();
-	while (waitpid(-1, NULL, WNOHANG) > 0); /* Collects all dead childrens */
-	Run();
+	if (force_nodaemon) {
+		delete LoginPanel;
+		exit(ERR_EXIT); /* use ERR_EXIT so that systemd's RESTART=on-failure works */
+	} else {
+		while (waitpid(-1, NULL, WNOHANG) > 0); /* Collects all dead childrens */
+		Run();
+	}
 }
 
 void App::KillAllClients(Bool top) {
--- a/slim.service	2013-10-23 16:19:57.074100282 -0400
+++ b/slim.service	2013-10-23 16:45:14.901142776 -0400
@@ -4,6 +4,7 @@
 
 [Service]
 ExecStart=/usr/bin/slim -nodaemon
+Restart=on-failure
 
 [Install]
 Alias=display-manager.service
Common subdirectories: slim-1.3.6/themes and slim-1.3.6.new/themes