summarylogtreecommitdiffstats
path: root/0004a-hylafaxplus-systemd.patch
blob: f49ddac36cfc7fe0892e40523dd8c399e793f69c (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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
--- etc/faxsetup.sh.in.Arch	2018-07-04 20:37:28.000000000 -0400
+++ etc/faxsetup.sh.in	2018-08-21 20:23:55.661109684 -0400
@@ -113,11 +113,11 @@ PATH_IMPRIP=@IMPRIP@		# pathname of IRIX
 POSIXLY_CORRECT=1; export POSIXLY_CORRECT		# disable GNU extensions
 
 #
 # Location of sysv init script
 #
-DIR_SYSVINIT=@SYSVINITDIR@
+DIR_SYSVINIT="systemd"
 FAXQ_SERVER=@FAXQ_SERVER@
 HFAXD_SERVER=@HFAXD_SERVER@
 HFAXD_SNPP_SERVER=@HFAXD_SNPP_SERVER@
 
 #
@@ -1892,11 +1892,20 @@ fi
 #
 # Check that for servers being started at system boot.
 #
 if onServer; then
     signalINETD=no
-    if [ -f ${DIR_SYSVINIT}/hylafax ]; then
+    ishylaInit ()
+    {
+    if [ "${DIR_SYSVINIT}" = "systemd" ]; then
+        systemctl -q is-enabled hylafax-hfaxd.service
+    else
+        [ -f ${DIR_SYSVINIT}/hylafax ]
+    fi
+    }
+
+    if ishylaInit; then
 	# started by init at boot time
         if [ $FAXQ_SERVER = no ]; then
             cat <<EOF
 
 Warning faxq will NOT be automatically started on reboot!
@@ -2410,11 +2419,14 @@ if onServer; then
 
 Warning: hfaxd is still running!
 
 Something is hung.  The command
 
-    kill $HFAXD
+    kill $HFAXD (SysV)
+or
+    systemctl stop hylafax-hfaxd.service (systemd)
+
     
 did not terminate the hfaxd processes as expected.
 EOF
 		prompt "Should we continue to wait [no]?";
 		if [ "$INTERACTIVE" != "no" ]; then
@@ -2595,17 +2607,24 @@ EOF
 	    fi
 	    if isOK "$x"; then
 		for x in $DEVS; do
 		    devid="`expr $x : 'config.\(.*\)'`"
 		    if [ -w $DIR_SPOOL/FIFO.$devid ]; then
-			echo $DIR_SBIN/faxquit $devid
-			$DIR_SBIN/faxquit $devid >/dev/null 2>&1
+			if [ "$DIR_SYSVINIT" = "systemd" ]; then
+			    systemctl enable "faxgetty@$devid.service"
+			    systemctl restart "faxgetty@$devid.service"
+			else
+			    echo $DIR_SBIN/faxquit $devid
+			    $DIR_SBIN/faxquit $devid >/dev/null 2>&1
+			fi
 		    fi
 		done
 	    fi
 	else
-	    if [ -f /etc/inittab ]; then
+	    if [ "$DIR_SYSVINIT" = "systemd" ]; then
+	        FAXGETTY="`cd /etc/systemd/system/multi-user.target.wants; echo faxgetty@*.service`"; test "$FAXGETTY" = "faxgetty@*.service" && unset FAXGETTY
+	    elif [ -f /etc/inittab ]; then
 		FAXGETTY="`$GREP '[^#].*:respawn:faxgetty.*' /etc/inittab`"
 	    elif [ -f /etc/ttys ]; then
 		FAXGETTY="`$GREP '[^#].*faxgetty.*' /etc/ttys`"
 	    fi
 	    if [ "$FAXGETTY" ]; then
@@ -2623,11 +2642,19 @@ EOF
 		    x=
 		    echo
 		fi
 		if isOK "$x"; then
 		    init="`findproc init`"
-		    if [ "$init" ]; then
+		    if [ "$DIR_SYSVINIT" = "systemd" ]; then
+		      for x in $DEVS; do
+		        devid="`expr $x : 'config.\(.*\)'`"
+		        if [ -w $DIR_SPOOL/FIFO.$devid ]; then
+		            systemctl enable "faxgetty@$devid.service"
+		            systemctl restart "faxgetty@$devid.service"
+		        fi
+		      done
+		    elif [ "$init" ]; then
 			if kill -HUP $init; then
 			    echo "Sent init a SIGHUP; the faxgetty processes should be started."
 			else
 			    echo "Unable to send init a SIGHUP; you may need to do this yourself."
 			fi