Initial commit of necessary files.
This commit is contained in:
		
							parent
							
								
									de424d0b20
								
							
						
					
					
						commit
						07137473ab
					
				
							
								
								
									
										58
									
								
								README.md
								
								
								
								
							
							
						
						
									
										58
									
								
								README.md
								
								
								
								
							|  | @ -1,2 +1,58 @@ | |||
| # urt-service | ||||
| Urban Terror Systemd service unit configuration with error notification sent via email. | ||||
| Run Urban Terror server using systemd, screen and mail applications on a Linux operating system. | ||||
| 
 | ||||
| > **Note:** Tested to work on a Debian Wheezy/Jessie operating system, may require alterations for it to work on other operating systems. | ||||
| > **Note:** It is assumed email is already configured and required packages are installed on the Linux system being used. | ||||
| 
 | ||||
| ## Features | ||||
| 
 | ||||
| - Urban Terror starts up automatically at system start up (runs as a service/daemon). | ||||
| - Notification of Urban Terror service failures are sent via email. | ||||
| 
 | ||||
| ## Required Packages | ||||
| 
 | ||||
| - git | ||||
| - mailutils (/usr/bin/mail) | ||||
| - nano | ||||
| - screen | ||||
| - systemd | ||||
| 
 | ||||
| ## Sending an Email When a Unit Fails Works as Follows... | ||||
| 
 | ||||
| - Two files will be required to achieve this: an executable for sending the email and a .service for starting the executable. | ||||
| - Add "OnFailure=status-send-email@%n.service" without double quotes to the [Unit] section of any unit file to receive emails on failures. | ||||
| - %n passes the unit's name to the template. %i is the instance name. Refer to the man page systemd.unit for further details. | ||||
| 
 | ||||
| ## Installation Instructions | ||||
| 
 | ||||
| > **Note:** Anything proceeding the "$" is to be entered in the Linux operating system terminal/console. | ||||
| 
 | ||||
| 1. $ git clone https://github.com/thewarden/urt-service.git | ||||
| 2. $ cd urt-service | ||||
| 3. Change paths to match the system. | ||||
|     1. $ nano urbanterror.service | ||||
| 4. Set desired email address. | ||||
|     1. $ nano status-send-email@.service | ||||
| 5. Install service unit files and email script. | ||||
|     1. $ sudo mv urbanterror.service status-send-email@.service /etc/systemd/system | ||||
|     2. $ sudo mv systemd-send-email /usr/local/sbin/ | ||||
|     3. $ sudo chmod +x /usr/local/sbin/systemd-send-email | ||||
| 6. Test service units. Correct any erorrs that may occur and the repeat the tests until successful. | ||||
|     1. $ sudo systemctl start urbanterror.service | ||||
|     2. $ sudo systemctl status urbanterror.service | ||||
|     3. $ sudo systemctl start status-send-email@dbus.service | ||||
|     4. $ sudo systemctl status status-send-emaild@.service  | ||||
|        1. Check for an email message. | ||||
| 7. Enable service unit. | ||||
|     1. $ sudo systemctl enable urbanterror.service | ||||
| 
 | ||||
| ## Useful Commands | ||||
| 
 | ||||
| Description          |Command Example | ||||
| ---------------------|----------------------- | ||||
| Reload all unit files|systemctl daemon-reload | ||||
| Restart unit         |systemctl restart urbanterror.service | ||||
| Start unit           |systemctl start urbanterror.service | ||||
| Stop unit            |systemctl stop urbanterror.service | ||||
| View unit status     |systemctl status urbanterror.service | ||||
| View unit messages   |journalctl -u urbanterror.service | ||||
|  |  | |||
|  | @ -0,0 +1,9 @@ | |||
| [Unit] | ||||
| Description=status email for %i to notify | ||||
| 
 | ||||
| [Service] | ||||
| Type=oneshot | ||||
| ExecStart=/usr/local/sbin/systemd-send-email john@example.com %i | ||||
| User=root | ||||
| Group=systemd-journal | ||||
| 
 | ||||
|  | @ -0,0 +1,4 @@ | |||
| #!/bin/bash | ||||
| /usr/bin/mail -s "[$HOSTNAME] $2 Failed" $1 <<EOF | ||||
| $(systemctl status --full "$2") | ||||
| EOF | ||||
|  | @ -0,0 +1,15 @@ | |||
| [Unit] | ||||
| Description=Urban Terror Server | ||||
| After=network.target | ||||
| Before=shutdown.target reboot.target halt.target | ||||
| OnFailure=status-send-email@%n.service | ||||
| 
 | ||||
| [Service] | ||||
| ExecStart=/usr/bin/screen -m -d -S UrT-Server sh /home/urt/UrbanTerror42/starturt.sh | ||||
| ExecStop=/usr/bin/screen -S UrT-Server -X quit | ||||
| ExecReload=/usr/bin/screen -S UrT-Server -X quit && /usr/bin/screen -m -d -S UrT-Server sh /home/urt/UrbanTerror42/starturt.sh | ||||
| Type=forking | ||||
| Restart=on-failure | ||||
| 
 | ||||
| [Install] | ||||
| WantedBy=multi-user.target | ||||
|  | @ -0,0 +1,9 @@ | |||
| [Unit] | ||||
| Description=Urban Terror | ||||
|   | ||||
| [Timer] | ||||
| OnBootSec=0 | ||||
| Persistent=false | ||||
|   | ||||
| [Install] | ||||
| WantedBy=multi-user.target | ||||
		Reference in New Issue