Bob Mottram пре 10 година
родитељ
комит
b6758d7d16
1 измењених фајлова са 31 додато и 0 уклоњено
  1. 31
    0
      install-freedombone.sh

+ 31
- 0
install-freedombone.sh Прегледај датотеку

@@ -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