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