| 
									
										
										
										
											2015-05-25 17:40:16 +02:00
										 |  |  | # A general watchdog for the linux operating system that should run in the | 
					
						
							|  |  |  | # background at all times to ensure a realtime process won't hang the machine | 
					
						
							|  |  |  | { config, lib, pkgs, ... }: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | with lib; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   inherit (pkgs) das_watchdog; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | in { | 
					
						
							|  |  |  |   ###### interface | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   options = { | 
					
						
							| 
									
										
										
										
											2015-06-21 18:19:46 +03:00
										 |  |  |     services.das_watchdog.enable = mkEnableOption "realtime watchdog"; | 
					
						
							| 
									
										
										
										
											2015-05-25 17:40:16 +02:00
										 |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ###### implementation | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   config = mkIf config.services.das_watchdog.enable { | 
					
						
							|  |  |  |     environment.systemPackages = [ das_watchdog ]; | 
					
						
							|  |  |  |     systemd.services.das_watchdog = { | 
					
						
							|  |  |  |       description = "Watchdog to ensure a realtime process won't hang the machine"; | 
					
						
							|  |  |  |       after = [ "multi-user.target" "sound.target" ]; | 
					
						
							|  |  |  |       wantedBy = [ "multi-user.target" ]; | 
					
						
							|  |  |  |       serviceConfig = { | 
					
						
							|  |  |  |         User = "root"; | 
					
						
							| 
									
										
										
										
											2017-03-09 16:14:17 +01:00
										 |  |  |         Type = "simple"; | 
					
						
							| 
									
										
										
										
											2015-05-25 17:40:16 +02:00
										 |  |  |         ExecStart = "${das_watchdog}/bin/das_watchdog"; | 
					
						
							|  |  |  |         RemainAfterExit = true; | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | } |