Browse Source

Watchdog script

Bob Mottram 10 years ago
parent
commit
b6758d7d16
1 changed files with 31 additions and 0 deletions
  1. 31
    0
      install-freedombone.sh

+ 31
- 0
install-freedombone.sh View File

217
 # name of a script used to upgrade the system
217
 # name of a script used to upgrade the system
218
 UPGRADE_SCRIPT_NAME="freedombone-upgrade"
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
 # Name of a script used to create a backup of the system on usb drive
223
 # Name of a script used to create a backup of the system on usb drive
221
 BACKUP_SCRIPT_NAME="backup"
224
 BACKUP_SCRIPT_NAME="backup"
222
 
225
 
3506
   echo 'install_xmpp' >> $COMPLETION_FILE
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
 function install_irc_server {
3529
 function install_irc_server {
3510
   if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
3530
   if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
3511
       return
3531
       return
3553
   sed -i "s/;Password = ThePwd/Password = $IRC_OPERATOR_PASSWORD/g" /etc/ngircd/ngircd.conf
3573
   sed -i "s/;Password = ThePwd/Password = $IRC_OPERATOR_PASSWORD/g" /etc/ngircd/ngircd.conf
3554
   service ngircd start
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
   if ! grep -q "IRC Server" /home/$MY_USERNAME/README; then
3586
   if ! grep -q "IRC Server" /home/$MY_USERNAME/README; then
3557
       echo '' >> /home/$MY_USERNAME/README
3587
       echo '' >> /home/$MY_USERNAME/README
3558
       echo '' >> /home/$MY_USERNAME/README
3588
       echo '' >> /home/$MY_USERNAME/README
5105
 script_to_make_self_signed_certificates
5135
 script_to_make_self_signed_certificates
5106
 create_upgrade_script
5136
 create_upgrade_script
5107
 route_outgoing_traffic_through_tor
5137
 route_outgoing_traffic_through_tor
5138
+install_watchdog_script
5108
 configure_email
5139
 configure_email
5109
 create_procmail
5140
 create_procmail
5110
 #spam_filtering
5141
 #spam_filtering