|
@@ -217,6 +217,9 @@ USB_MOUNT=/mnt/usb
|
217
|
217
|
# name of a script used to upgrade the system
|
218
|
218
|
UPGRADE_SCRIPT_NAME="freedombone-upgrade"
|
219
|
219
|
|
|
220
|
+# name of a script which keeps running processes going even if they crash
|
|
221
|
+WATCHDOG_SCRIPT_NAME="keepon"
|
|
222
|
+
|
220
|
223
|
# Name of a script used to create a backup of the system on usb drive
|
221
|
224
|
BACKUP_SCRIPT_NAME="backup"
|
222
|
225
|
|
|
@@ -3506,6 +3509,23 @@ function install_xmpp {
|
3506
|
3509
|
echo 'install_xmpp' >> $COMPLETION_FILE
|
3507
|
3510
|
}
|
3508
|
3511
|
|
|
3512
|
+function install_watchdog_script {
|
|
3513
|
+ if grep -Fxq "install_watchdog_script" $COMPLETION_FILE; then
|
|
3514
|
+ return
|
|
3515
|
+ fi
|
|
3516
|
+ echo '#!/bin/bash' > /usr/bin/$WATCHDOG_SCRIPT_NAME
|
|
3517
|
+ echo 'LOGFILE=/var/log/keepon.log' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
|
|
3518
|
+ echo 'CURRENT_DATE=$(date)' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
|
|
3519
|
+ # application specific stuff is added later
|
|
3520
|
+ chmod +x /usr/bin/$WATCHDOG_SCRIPT_NAME
|
|
3521
|
+
|
|
3522
|
+ if ! grep -q "/usr/bin/$WATCHDOG_SCRIPT_NAME" /etc/crontab; then
|
|
3523
|
+ echo "*/1 * * * * root /usr/bin/$WATCHDOG_SCRIPT_NAME" >> /etc/crontab
|
|
3524
|
+ fi
|
|
3525
|
+
|
|
3526
|
+ echo 'install_watchdog_script' >> $COMPLETION_FILE
|
|
3527
|
+}
|
|
3528
|
+
|
3509
|
3529
|
function install_irc_server {
|
3510
|
3530
|
if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
|
3511
|
3531
|
return
|
|
@@ -3553,6 +3573,16 @@ function install_irc_server {
|
3553
|
3573
|
sed -i "s/;Password = ThePwd/Password = $IRC_OPERATOR_PASSWORD/g" /etc/ngircd/ngircd.conf
|
3554
|
3574
|
service ngircd start
|
3555
|
3575
|
|
|
3576
|
+ # keep the daemon running
|
|
3577
|
+ echo '' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
|
|
3578
|
+ echo '# keep irc daemon running' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
|
|
3579
|
+ echo 'IRC_RUNNING=$(pgrep ngircd > /dev/null && echo Running)' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
|
|
3580
|
+ echo 'if [ ! $IRC_RUNNING ]; then' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
|
|
3581
|
+ echo ' service ngircd start' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
|
|
3582
|
+ echo ' echo -n $CURRENT_DATE >> $LOGFILE' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
|
|
3583
|
+ echo ' echo " IRC daemon restarted" >> $LOGFILE' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
|
|
3584
|
+ echo 'fi' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
|
|
3585
|
+
|
3556
|
3586
|
if ! grep -q "IRC Server" /home/$MY_USERNAME/README; then
|
3557
|
3587
|
echo '' >> /home/$MY_USERNAME/README
|
3558
|
3588
|
echo '' >> /home/$MY_USERNAME/README
|
|
@@ -5105,6 +5135,7 @@ regenerate_ssh_keys
|
5105
|
5135
|
script_to_make_self_signed_certificates
|
5106
|
5136
|
create_upgrade_script
|
5107
|
5137
|
route_outgoing_traffic_through_tor
|
|
5138
|
+install_watchdog_script
|
5108
|
5139
|
configure_email
|
5109
|
5140
|
create_procmail
|
5110
|
5141
|
#spam_filtering
|