This adds integration and especially watchdog support between aes67-daemon and systemd. A example service file is also included.
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Desktop File
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Desktop File
		
	
	
	
	
	
| [Unit]
 | |
| Description=AES67 daemon service
 | |
| Before=multi-user.target
 | |
| After=network.target
 | |
| 
 | |
| [Service]
 | |
| Type=notify
 | |
| # Will be adjusted by service during startup
 | |
| WatchdogSec=10
 | |
| 
 | |
| # Run as separate user created via sysusers.d
 | |
| User=aes67-daemon
 | |
| 
 | |
| ExecStart=/usr/local/bin/aes67-daemon
 | |
| 
 | |
| # Security filters.
 | |
| CapabilityBoundingSet=
 | |
| DevicePolicy=closed
 | |
| LockPersonality=yes
 | |
| MemoryDenyWriteExecute=yes
 | |
| NoNewPrivileges=yes
 | |
| PrivateDevices=yes
 | |
| PrivateMounts=yes
 | |
| PrivateTmp=yes
 | |
| PrivateUsers=yes
 | |
| # interface::get_mac_from_arp_cache() reads from /proc/net/arp
 | |
| ProcSubset=all
 | |
| ProtectClock=yes
 | |
| ProtectControlGroups=yes
 | |
| ProtectHome=yes
 | |
| ProtectHostname=yes
 | |
| ProtectKernelLogs=yes
 | |
| ProtectKernelModules=yes
 | |
| ProtectKernelTunables=yes
 | |
| ProtectProc=invisible
 | |
| ProtectSystem=strict
 | |
| RemoveIPC=yes
 | |
| RestrictAddressFamilies=AF_INET AF_NETLINK AF_UNIX
 | |
| RestrictNamespaces=yes
 | |
| RestrictRealtime=yes
 | |
| RestrictSUIDSGID=yes
 | |
| SystemCallArchitectures=native
 | |
| SystemCallFilter=~@clock
 | |
| SystemCallFilter=~@cpu-emulation
 | |
| SystemCallFilter=~@debug
 | |
| SystemCallFilter=~@module
 | |
| SystemCallFilter=~@mount
 | |
| SystemCallFilter=~@obsolete
 | |
| SystemCallFilter=~@privileged
 | |
| SystemCallFilter=~@raw-io
 | |
| SystemCallFilter=~@reboot
 | |
| SystemCallFilter=~@resources
 | |
| SystemCallFilter=~@swap
 | |
| UMask=077
 | |
| # Paths matching daemon.conf
 | |
| ReadWritePaths=/etc/daemon.conf
 | |
| ReadWritePaths=/etc/status.json
 | |
| 
 | |
| [Install]
 | |
| WantedBy=multi-user.target
 |