Parcourir la source

Move icecast to systemd

Bob Mottram il y a 7 ans
Parent
révision
ec184e0c14
1 fichiers modifiés avec 46 ajouts et 85 suppressions
  1. 46
    85
      src/freedombone-app-icecast

+ 46
- 85
src/freedombone-app-icecast Voir le fichier

49
                    DEFAULT_LANGUAGE)
49
                    DEFAULT_LANGUAGE)
50
 
50
 
51
 function icecast_update_daemon {
51
 function icecast_update_daemon {
52
-    echo '#! /bin/sh' > /etc/init.d/icecast2
53
-    echo '#' >> /etc/init.d/icecast2
54
-    echo '# icecast2' >> /etc/init.d/icecast2
55
-    echo '#' >> /etc/init.d/icecast2
56
-    echo '#                Written by Miquel van Smoorenburg <miquels@cistron.nl>.' >> /etc/init.d/icecast2
57
-    echo '#                Modified for Debian' >> /etc/init.d/icecast2
58
-    echo '#                by Ian Murdock <imurdock@gnu.ai.mit.edu>.' >> /etc/init.d/icecast2
59
-    echo '#' >> /etc/init.d/icecast2
60
-    echo '#                Further modified by Keegan Quinn <ice@thebasement.org>' >> /etc/init.d/icecast2
61
-    echo '#                for use with Icecast 2' >> /etc/init.d/icecast2
62
-    echo '#' >> /etc/init.d/icecast2
63
-    echo '' >> /etc/init.d/icecast2
64
-    echo 'PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin' >> /etc/init.d/icecast2
65
-    echo 'DAEMON=/usr/bin/icecast2' >> /etc/init.d/icecast2
66
-    echo 'NAME=icecast2' >> /etc/init.d/icecast2
67
-    echo 'DESC=icecast2' >> /etc/init.d/icecast2
68
-    echo 'ICES=/usr/bin/ices2' >> /etc/init.d/icecast2
69
-    echo 'ICES_CONFIGFILE=/etc/ices2/ices-playlist.xml' >> /etc/init.d/icecast2
70
-    echo '' >> /etc/init.d/icecast2
71
-    echo 'test -x $DAEMON || exit 0' >> /etc/init.d/icecast2
72
-    echo '' >> /etc/init.d/icecast2
73
-    echo '# Defaults' >> /etc/init.d/icecast2
74
-    echo 'CONFIGFILE="/etc/icecast2/icecast.xml"' >> /etc/init.d/icecast2
75
-    echo 'CONFIGDEFAULTFILE="/etc/default/icecast2"' >> /etc/init.d/icecast2
76
-    echo 'USERID=icecast2' >> /etc/init.d/icecast2
77
-    echo 'GROUPID=icecast' >> /etc/init.d/icecast2
78
-    echo 'ENABLE="false"' >> /etc/init.d/icecast2
79
-    echo '' >> /etc/init.d/icecast2
80
-    echo '# Reads config file (will override defaults above)' >> /etc/init.d/icecast2
81
-    echo '[ -r "$CONFIGDEFAULTFILE" ] && . $CONFIGDEFAULTFILE' >> /etc/init.d/icecast2
82
-    echo '' >> /etc/init.d/icecast2
83
-    echo 'if [ "$ENABLE" != "true" ]; then' >> /etc/init.d/icecast2
84
-    echo '        echo "$NAME daemon disabled - read $CONFIGDEFAULTFILE."' >> /etc/init.d/icecast2
85
-    echo '        exit 0' >> /etc/init.d/icecast2
86
-    echo 'fi' >> /etc/init.d/icecast2
87
-    echo '' >> /etc/init.d/icecast2
88
-    echo 'set -e' >> /etc/init.d/icecast2
89
-    echo '' >> /etc/init.d/icecast2
90
-    echo 'case "$1" in' >> /etc/init.d/icecast2
91
-    echo '  start)' >> /etc/init.d/icecast2
92
-    echo '        echo -n "Starting $DESC: "' >> /etc/init.d/icecast2
93
-    echo '        start-stop-daemon --start --quiet --chuid $USERID:$GROUPID \' >> /etc/init.d/icecast2
94
-    echo '                --exec $DAEMON -- -b -c $CONFIGFILE' >> /etc/init.d/icecast2
95
-    echo '        sleep 3' >> /etc/init.d/icecast2
96
-    echo '        start-stop-daemon --start --quiet --exec $ICES $ICES_CONFIGFILE' >> /etc/init.d/icecast2
97
-    echo '        echo "$NAME."' >> /etc/init.d/icecast2
98
-    echo '        ;;' >> /etc/init.d/icecast2
99
-    echo '  stop)' >> /etc/init.d/icecast2
100
-    echo '        echo -n "Stopping $DESC: "' >> /etc/init.d/icecast2
101
-    echo '        start-stop-daemon --stop --oknodo --quiet --exec $ICES' >> /etc/init.d/icecast2
102
-    echo '' >> /etc/init.d/icecast2
103
-    echo '        start-stop-daemon --stop --oknodo --quiet --exec $DAEMON' >> /etc/init.d/icecast2
104
-    echo '        echo "$NAME."' >> /etc/init.d/icecast2
105
-    echo '        ;;' >> /etc/init.d/icecast2
106
-    echo '  reload|force-reload)' >> /etc/init.d/icecast2
107
-    echo '        echo "Reloading $DESC configuration files."' >> /etc/init.d/icecast2
108
-    echo '        start-stop-daemon --stop --oknodo --quiet --exec $ICES' >> /etc/init.d/icecast2
109
-    echo '        start-stop-daemon --stop --signal 1 --quiet --exec $DAEMON' >> /etc/init.d/icecast2
110
-    echo '        sleep 3' >> /etc/init.d/icecast2
111
-    echo '        start-stop-daemon --start --quiet --exec $ICES $ICES_CONFIGFILE' >> /etc/init.d/icecast2
112
-    echo '        ;;' >> /etc/init.d/icecast2
113
-    echo '  restart)' >> /etc/init.d/icecast2
114
-    echo '        echo -n "Restarting $DESC: "' >> /etc/init.d/icecast2
115
-    echo '        start-stop-daemon --stop --oknodo --quiet --exec $ICES' >> /etc/init.d/icecast2
116
-    echo '' >> /etc/init.d/icecast2
117
-    echo '        start-stop-daemon --stop --oknodo --quiet --exec $DAEMON' >> /etc/init.d/icecast2
118
-    echo '        sleep 3' >> /etc/init.d/icecast2
119
-    echo '        start-stop-daemon --start --quiet --chuid $USERID:$GROUPID \' >> /etc/init.d/icecast2
120
-    echo '                --exec $DAEMON -- -b -c $CONFIGFILE' >> /etc/init.d/icecast2
121
-    echo '        sleep 3' >> /etc/init.d/icecast2
122
-    echo '        start-stop-daemon --start --quiet --exec $ICES $ICES_CONFIGFILE' >> /etc/init.d/icecast2
123
-    echo '        echo "$NAME."' >> /etc/init.d/icecast2
124
-    echo '        ;;' >> /etc/init.d/icecast2
125
-    echo '  *)' >> /etc/init.d/icecast2
126
-    echo '        echo "Usage: $0 {start|stop|restart|reload|force-reload}" >&2' >> /etc/init.d/icecast2
127
-    echo '        exit 1' >> /etc/init.d/icecast2
128
-    echo '        ;;' >> /etc/init.d/icecast2
129
-    echo 'esac' >> /etc/init.d/icecast2
130
-    echo '' >> /etc/init.d/icecast2
131
-    echo 'exit 0' >> /etc/init.d/icecast2
52
+    systemctl stop icecast2
53
+    if [ -f /etc/init.d/icecast2 ]; then
54
+        rm /etc/init.d/icecast2
55
+    fi
56
+
57
+    echo '[Unit]' > /etc/systemd/system/icecast2.service
58
+    echo 'Description=Icecast' >> /etc/systemd/system/icecast2.service
59
+    echo 'After=network.target' >> /etc/systemd/system/icecast2.service
60
+    echo 'After=tor.service' >> /etc/systemd/system/icecast2.service
61
+    echo '' >> /etc/systemd/system/icecast2.service
62
+    echo '[Service]' >> /etc/systemd/system/icecast2.service
63
+    echo 'User=icecast2' >> /etc/systemd/system/icecast2.service
64
+    echo 'Group=icecast' >> /etc/systemd/system/icecast2.service
65
+    echo "ExecStart=/usr/bin/icecast2 -c /etc/icecast2/icecast.xml" >> /etc/systemd/system/icecast2.service
66
+    echo 'Restart=on-failure' >> /etc/systemd/system/icecast2.service
67
+    echo 'RestartSec=10' >> /etc/systemd/system/icecast2.service
68
+    echo '' >> /etc/systemd/system/icecast2.service
69
+    echo '[Install]' >> /etc/systemd/system/icecast2.service
70
+    echo 'WantedBy=multi-user.target' >> /etc/systemd/system/icecast2.service
71
+
72
+    echo '[Unit]' > /etc/systemd/system/ices2.service
73
+    echo 'Description=Icecast' >> /etc/systemd/system/ices2.service
74
+    echo 'After=network.target' >> /etc/systemd/system/ices2.service
75
+    echo 'After=tor.service' >> /etc/systemd/system/ices2.service
76
+    echo 'After=icecast2.service' >> /etc/systemd/system/ices2.service
77
+    echo '' >> /etc/systemd/system/ices2.service
78
+    echo '[Service]' >> /etc/systemd/system/ices2.service
79
+    echo 'User=icecast2' >> /etc/systemd/system/ices2.service
80
+    echo 'Group=icecast' >> /etc/systemd/system/ices2.service
81
+    echo "ExecStart=/usr/bin/ices2 /etc/ices2/ices-playlist.xml" >> /etc/systemd/system/ices2.service
82
+    echo 'Restart=on-failure' >> /etc/systemd/system/ices2.service
83
+    echo 'RestartSec=10' >> /etc/systemd/system/ices2.service
84
+    echo '' >> /etc/systemd/system/ices2.service
85
+    echo '[Install]' >> /etc/systemd/system/ices2.service
86
+    echo 'WantedBy=multi-user.target' >> /etc/systemd/system/ices2.service
132
 
87
 
133
     systemctl daemon-reload
88
     systemctl daemon-reload
89
+    systemctl enable icecast2
90
+    systemctl enable ices2
134
     systemctl restart icecast2
91
     systemctl restart icecast2
92
+    systemctl restart ices2
135
 }
93
 }
136
 
94
 
137
 function change_password_icecast {
95
 function change_password_icecast {
169
     echo $'Converting any mp4 files to ogv format'
127
     echo $'Converting any mp4 files to ogv format'
170
     find . -type f -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -c:a libvorbis -q:a 4 "${f/%mp4/ogv}' '{}' \;
128
     find . -type f -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -c:a libvorbis -q:a 4 "${f/%mp4/ogv}' '{}' \;
171
 
129
 
172
-    chown -R icecast2:icecast2 $ICECAST_DIR
130
+    chown -R icecast2:icecast $ICECAST_DIR
173
 }
131
 }
174
 
132
 
175
 function icecast_add_file_to_playlist {
133
 function icecast_add_file_to_playlist {
192
         fi
150
         fi
193
     done
151
     done
194
 
152
 
195
-    chown icecast2:icecast2 $ICECAST_PLAYLIST_FILE
153
+    chown icecast2:icecast $ICECAST_PLAYLIST_FILE
196
     systemctl restart icecast2
154
     systemctl restart icecast2
197
 }
155
 }
198
 
156
 
426
     fi
384
     fi
427
     cp $ICECAST_DIR/.icepasswd /etc/nginx/.icepasswd
385
     cp $ICECAST_DIR/.icepasswd /etc/nginx/.icepasswd
428
     rm $ICECAST_DIR/.icepasswd
386
     rm $ICECAST_DIR/.icepasswd
429
-    chown -R icecast2:icecast2 $ICECAST_DIR
387
+    chown -R icecast2:icecast $ICECAST_DIR
430
 
388
 
431
     systemctl start icecast2
389
     systemctl start icecast2
432
     rm -rf $temp_restore_dir
390
     rm -rf $temp_restore_dir
462
     fi
420
     fi
463
     cp $ICECAST_DIR/.icepasswd /etc/nginx/.icepasswd
421
     cp $ICECAST_DIR/.icepasswd /etc/nginx/.icepasswd
464
     rm $ICECAST_DIR/.icepasswd
422
     rm $ICECAST_DIR/.icepasswd
465
-    chown -R icecast2:icecast2 $ICECAST_DIR
423
+    chown -R icecast2:icecast $ICECAST_DIR
466
 
424
 
467
     systemctl start icecast2
425
     systemctl start icecast2
468
     rm -rf $temp_restore_dir
426
     rm -rf $temp_restore_dir
646
     if [ ! -d $ICECAST_DIR ]; then
604
     if [ ! -d $ICECAST_DIR ]; then
647
         mkdir $ICECAST_DIR
605
         mkdir $ICECAST_DIR
648
     fi
606
     fi
649
-    chown -R icecast2:icecast2 $ICECAST_DIR
607
+    chown -R icecast2:icecast $ICECAST_DIR
650
 
608
 
651
 
609
 
652
     # create a password for users
610
     # create a password for users
663
     ${PROJECT_NAME}-pass -u $MY_USERNAME -a icecast -p "$ICECAST_PASSWORD"
621
     ${PROJECT_NAME}-pass -u $MY_USERNAME -a icecast -p "$ICECAST_PASSWORD"
664
     ${PROJECT_NAME}-pass -u $MY_USERNAME -a icecastuser -p "$ICECAST_USER_PASSWORD"
622
     ${PROJECT_NAME}-pass -u $MY_USERNAME -a icecastuser -p "$ICECAST_USER_PASSWORD"
665
 
623
 
624
+    groupadd icecast
625
+    useradd -c "Icecast system account" -d /etc/icecast2 -m -r -g icecast icecast2
626
+
666
     icecast_update_daemon
627
     icecast_update_daemon
667
     nginx_ensite icecast
628
     nginx_ensite icecast
668
     systemctl restart nginx
629
     systemctl restart nginx