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