35 lines
		
	
	
		
			877 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			877 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| # 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 = {
 | |
|     services.das_watchdog.enable = mkEnableOption "realtime watchdog";
 | |
|   };
 | |
| 
 | |
|   ###### 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";
 | |
|         Type = "simple";
 | |
|         ExecStart = "${das_watchdog}/bin/das_watchdog";
 | |
|         RemainAfterExit = true;
 | |
|       };
 | |
|     };
 | |
|   };
 | |
| }
 | 
