Fixing icecast daemons
This commit is contained in:
parent
0f5803abc9
commit
f9ea6d11cf
|
@ -10,6 +10,10 @@
|
||||||
#
|
#
|
||||||
# Icecast application
|
# Icecast application
|
||||||
#
|
#
|
||||||
|
# Notes: An attempt was made to get ices2 running with systemd, but that
|
||||||
|
# was very unsuccessful. Instead there's a hacky cron entry which
|
||||||
|
# starts icecast2 and ices2 if necessary
|
||||||
|
#
|
||||||
# License
|
# License
|
||||||
# =======
|
# =======
|
||||||
#
|
#
|
||||||
|
@ -55,6 +59,22 @@ function icecast_update_daemon {
|
||||||
rm /etc/init.d/icecast2
|
rm /etc/init.d/icecast2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo '#!/bin/sh' > /usr/bin/stop_icecast
|
||||||
|
echo 'kill $(pidof ices2)' >> /usr/bin/stop_icecast
|
||||||
|
echo 'systemctl stop icecast2' >> /usr/bin/stop_icecast
|
||||||
|
chmod +x /usr/bin/stop_icecast
|
||||||
|
|
||||||
|
# Note that the sleep here actually is important
|
||||||
|
echo '#!/bin/bash' > /usr/bin/start_icecast
|
||||||
|
echo 'isrunning=$(ps aux | grep ices2)' >> /usr/bin/start_icecast
|
||||||
|
echo 'if [[ "$isrunning" != *"ices-playlist"* ]]; then' >> /usr/bin/start_icecast
|
||||||
|
echo ' systemctl start icecast2' >> /usr/bin/start_icecast
|
||||||
|
echo ' sleep 3' >> /usr/bin/start_icecast
|
||||||
|
echo ' cd /etc/ices2' >> /usr/bin/start_icecast
|
||||||
|
echo ' ices2 ices-playlist.xml' >> /usr/bin/start_icecast
|
||||||
|
echo 'fi' >> /usr/bin/start_icecast
|
||||||
|
chmod +x /usr/bin/start_icecast
|
||||||
|
|
||||||
echo '[Unit]' > /etc/systemd/system/icecast2.service
|
echo '[Unit]' > /etc/systemd/system/icecast2.service
|
||||||
echo 'Description=Icecast' >> /etc/systemd/system/icecast2.service
|
echo 'Description=Icecast' >> /etc/systemd/system/icecast2.service
|
||||||
echo 'After=network.target' >> /etc/systemd/system/icecast2.service
|
echo 'After=network.target' >> /etc/systemd/system/icecast2.service
|
||||||
|
@ -63,46 +83,37 @@ function icecast_update_daemon {
|
||||||
echo '[Service]' >> /etc/systemd/system/icecast2.service
|
echo '[Service]' >> /etc/systemd/system/icecast2.service
|
||||||
echo 'User=icecast2' >> /etc/systemd/system/icecast2.service
|
echo 'User=icecast2' >> /etc/systemd/system/icecast2.service
|
||||||
echo 'Group=icecast' >> /etc/systemd/system/icecast2.service
|
echo 'Group=icecast' >> /etc/systemd/system/icecast2.service
|
||||||
echo "ExecStart=/usr/bin/icecast2 -c /etc/icecast2/icecast.xml" >> /etc/systemd/system/icecast2.service
|
echo 'ExecStart=/usr/bin/icecast2 -c /etc/icecast2/icecast.xml' >> /etc/systemd/system/icecast2.service
|
||||||
echo 'Restart=on-failure' >> /etc/systemd/system/icecast2.service
|
echo 'Restart=on-failure' >> /etc/systemd/system/icecast2.service
|
||||||
echo 'RestartSec=10' >> /etc/systemd/system/icecast2.service
|
echo 'RestartSec=10' >> /etc/systemd/system/icecast2.service
|
||||||
echo '' >> /etc/systemd/system/icecast2.service
|
echo '' >> /etc/systemd/system/icecast2.service
|
||||||
echo '[Install]' >> /etc/systemd/system/icecast2.service
|
echo '[Install]' >> /etc/systemd/system/icecast2.service
|
||||||
echo 'WantedBy=multi-user.target' >> /etc/systemd/system/icecast2.service
|
echo 'WantedBy=multi-user.target' >> /etc/systemd/system/icecast2.service
|
||||||
|
|
||||||
echo '[Unit]' > /etc/systemd/system/ices2.service
|
chown -R icecast2:icecast /etc/ices2
|
||||||
echo 'Description=Icecast' >> /etc/systemd/system/ices2.service
|
chown -R icecast2:icecast /etc/icecast2
|
||||||
echo 'After=network.target' >> /etc/systemd/system/ices2.service
|
|
||||||
echo 'After=tor.service' >> /etc/systemd/system/ices2.service
|
|
||||||
echo 'After=icecast2.service' >> /etc/systemd/system/ices2.service
|
|
||||||
echo '' >> /etc/systemd/system/ices2.service
|
|
||||||
echo '[Service]' >> /etc/systemd/system/ices2.service
|
|
||||||
echo 'Type=oneshot' >> /etc/systemd/system/ices2.service
|
|
||||||
echo 'User=icecast2' >> /etc/systemd/system/ices2.service
|
|
||||||
echo 'Group=icecast' >> /etc/systemd/system/ices2.service
|
|
||||||
echo "ExecStart=/usr/bin/ices2 /etc/ices2/ices-playlist.xml" >> /etc/systemd/system/ices2.service
|
|
||||||
echo '' >> /etc/systemd/system/ices2.service
|
|
||||||
echo '[Install]' >> /etc/systemd/system/ices2.service
|
|
||||||
echo 'WantedBy=multi-user.target' >> /etc/systemd/system/ices2.service
|
|
||||||
|
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
systemctl enable icecast2
|
systemctl enable icecast2
|
||||||
systemctl enable ices2
|
|
||||||
systemctl restart icecast2
|
if ! grep -q "start_icecast" /etc/crontab; then
|
||||||
systemctl restart ices2
|
echo '*/1 * * * * root /usr/bin/start_icecast > /dev/null' >> /etc/crontab
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function change_password_icecast {
|
function change_password_icecast {
|
||||||
curr_username="$1"
|
curr_username="$1"
|
||||||
new_user_password="$2"
|
new_user_password="$2"
|
||||||
|
|
||||||
|
stop_icecast
|
||||||
|
|
||||||
sed -i -e "s|<source-password>[^<]*</source-password>|<source-password>$new_user_password</source-password>|" \
|
sed -i -e "s|<source-password>[^<]*</source-password>|<source-password>$new_user_password</source-password>|" \
|
||||||
-e "s|<relay-password>[^<]*</relay-password>|<relay-password>$new_user_password</relay-password>|" \
|
-e "s|<relay-password>[^<]*</relay-password>|<relay-password>$new_user_password</relay-password>|" \
|
||||||
-e "s|<admin-password>[^<]*</admin-password>|<admin-password>$new_user_password</admin-password>|" \
|
-e "s|<admin-password>[^<]*</admin-password>|<admin-password>$new_user_password</admin-password>|" \
|
||||||
/etc/icecast2/icecast.xml
|
/etc/icecast2/icecast.xml
|
||||||
|
sed -i "s|<password>.*|<password>${new_user_password}</password>|g" /etc/ices2/ices-playlist.xml
|
||||||
|
|
||||||
${PROJECT_NAME}-pass -u "$curr_username" -a icecast -p "$new_user_password"
|
${PROJECT_NAME}-pass -u "$curr_username" -a icecast -p "$new_user_password"
|
||||||
systemctl restart icecast2
|
start_icecast
|
||||||
}
|
}
|
||||||
|
|
||||||
function logging_on_icecast {
|
function logging_on_icecast {
|
||||||
|
@ -153,8 +164,8 @@ function icecast_add_file_to_playlist {
|
||||||
done
|
done
|
||||||
|
|
||||||
chown icecast2:icecast $ICECAST_PLAYLIST_FILE
|
chown icecast2:icecast $ICECAST_PLAYLIST_FILE
|
||||||
systemctl restart icecast2
|
stop_icecast
|
||||||
systemctl restart ices2
|
start_icecast
|
||||||
}
|
}
|
||||||
|
|
||||||
function icecast_import_from_directory {
|
function icecast_import_from_directory {
|
||||||
|
@ -265,7 +276,8 @@ function icecast_format_drive {
|
||||||
|
|
||||||
function icecast_edit_playlist {
|
function icecast_edit_playlist {
|
||||||
editor $ICECAST_PLAYLIST_FILE
|
editor $ICECAST_PLAYLIST_FILE
|
||||||
systemctl restart icecast2
|
stop_icecast
|
||||||
|
start_icecast
|
||||||
}
|
}
|
||||||
|
|
||||||
function icecast_change_login {
|
function icecast_change_login {
|
||||||
|
@ -432,6 +444,13 @@ function restore_remote_icecast {
|
||||||
function remove_icecast {
|
function remove_icecast {
|
||||||
nginx_dissite icecast
|
nginx_dissite icecast
|
||||||
|
|
||||||
|
sed -i '/start_icecast/d' /etc/crontab
|
||||||
|
stop_icecast
|
||||||
|
systemctl disable icecast2
|
||||||
|
rm /etc/systemd/system/icecast2.service
|
||||||
|
rm /usr/bin/start_icecast
|
||||||
|
rm /usr/bin/stop_icecast
|
||||||
|
|
||||||
if [ -f /etc/nginx/sites-available/icecast ]; then
|
if [ -f /etc/nginx/sites-available/icecast ]; then
|
||||||
rm /etc/nginx/sites-available/icecast
|
rm /etc/nginx/sites-available/icecast
|
||||||
fi
|
fi
|
||||||
|
@ -441,6 +460,14 @@ function remove_icecast {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
apt-get -yq remove --purge icecast2
|
apt-get -yq remove --purge icecast2
|
||||||
|
|
||||||
|
if [ -d /etc/icecast2 ]; then
|
||||||
|
rm -rf /etc/icecast2
|
||||||
|
fi
|
||||||
|
if [ -d /etc/ices2 ]; then
|
||||||
|
rm -rf /etc/ices2
|
||||||
|
fi
|
||||||
|
sed -i '/icecast/d' $COMPLETION_FILE
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_icecast {
|
function install_icecast {
|
||||||
|
@ -475,6 +502,7 @@ function install_icecast {
|
||||||
sed -i "s|<admin-user>.*|<admin-user>$MY_USERNAME</admin-user>|g" /etc/icecast2/icecast.xml
|
sed -i "s|<admin-user>.*|<admin-user>$MY_USERNAME</admin-user>|g" /etc/icecast2/icecast.xml
|
||||||
sed -i "s|<admin>.*|<admin>$MY_EMAIL_ADDRESS</admin>|g" /etc/icecast2/icecast.xml
|
sed -i "s|<admin>.*|<admin>$MY_EMAIL_ADDRESS</admin>|g" /etc/icecast2/icecast.xml
|
||||||
sed -i "s|<location>.*|<location>The Interwebs</location>|g" /etc/icecast2/icecast.xml
|
sed -i "s|<location>.*|<location>The Interwebs</location>|g" /etc/icecast2/icecast.xml
|
||||||
|
#sed -i 's|<!-- <bind-address>.*|<bind-address>127.0.0.1</bind-address>|g' /etc/icecast2/icecast.xml
|
||||||
|
|
||||||
if [ ! -d /var/www/icecast/htdocs ]; then
|
if [ ! -d /var/www/icecast/htdocs ]; then
|
||||||
mkdir -p /var/www/icecast/htdocs
|
mkdir -p /var/www/icecast/htdocs
|
||||||
|
@ -539,7 +567,7 @@ function install_icecast {
|
||||||
echo ' <input>' >> /etc/ices2/ices-playlist.xml
|
echo ' <input>' >> /etc/ices2/ices-playlist.xml
|
||||||
echo ' <module>playlist</module>' >> /etc/ices2/ices-playlist.xml
|
echo ' <module>playlist</module>' >> /etc/ices2/ices-playlist.xml
|
||||||
echo ' <param name="type">basic</param>' >> /etc/ices2/ices-playlist.xml
|
echo ' <param name="type">basic</param>' >> /etc/ices2/ices-playlist.xml
|
||||||
echo ' <param name="file">playlist.txt</param>' >> /etc/ices2/ices-playlist.xml
|
echo " <param name=\"file\">$ICECAST_PLAYLIST_FILE</param>" >> /etc/ices2/ices-playlist.xml
|
||||||
echo ' <!-- random play -->' >> /etc/ices2/ices-playlist.xml
|
echo ' <!-- random play -->' >> /etc/ices2/ices-playlist.xml
|
||||||
echo ' <param name="random">0</param>' >> /etc/ices2/ices-playlist.xml
|
echo ' <param name="random">0</param>' >> /etc/ices2/ices-playlist.xml
|
||||||
echo ' <!-- if the playlist get updated that start at the beginning -->' >> /etc/ices2/ices-playlist.xml
|
echo ' <!-- if the playlist get updated that start at the beginning -->' >> /etc/ices2/ices-playlist.xml
|
||||||
|
@ -633,7 +661,7 @@ function install_icecast {
|
||||||
icecast_update_daemon
|
icecast_update_daemon
|
||||||
nginx_ensite icecast
|
nginx_ensite icecast
|
||||||
systemctl restart nginx
|
systemctl restart nginx
|
||||||
systemctl restart icecast2
|
start_icecast
|
||||||
|
|
||||||
APP_INSTALLED=1
|
APP_INSTALLED=1
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue