anchor.diff:        description = "RabbitMQ Server";
   
         wantedBy = [ "multi-user.target" ];
  -      after = [ "network-interfaces.target" ];
  +      after = [ "network.target" ];
   
  -      path = [ pkgs.rabbitmq_server ];
  +      path = [ pkgs.rabbitmq_server pkgs.procps ];
   
         environment = {
           RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia";
           RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress;
  +        RABBITMQ_NODE_PORT = toString cfg.port;
           RABBITMQ_SERVER_START_ARGS = "-rabbit error_logger tty -rabbit sasl_error_logger false";
  +        RABBITMQ_PID_FILE = "${cfg.dataDir}/pid";
           SYS_PREFIX = "";
           RABBITMQ_ENABLED_PLUGINS_FILE = pkgs.writeText "enabled_plugins" ''
             [ ${concatStringsSep "," cfg.plugins} ].
  
positive.code: 
        serviceConfig = {
          ExecStart = "${pkgs.rabbitmq_server}/sbin/rabbitmq-server";
          User = "rabbitmq";
          Group = "rabbitmq";
          PermissionsStartOnly = true;
        };
  
        preStart = ''
          mkdir -p ${cfg.dataDir} && chmod 0700 ${cfg.dataDir}
          if [ "$(id -u)" = 0 ]; then chown rabbitmq:rabbitmq ${cfg.dataDir}; fi
          
          ${optionalString (cfg.cookie != "") ''
              echo -n ${cfg.cookie} > ${cfg.dataDir}/.erlang.cookie
              chmod 400 ${cfg.dataDir}/.erlang.cookie
              chown rabbitmq:rabbitmq ${cfg.dataDir}/.erlang.cookie
          ''}
  
          mkdir -p /var/log/rabbitmq && chmod 0700 /var/log/rabbitmq
          chown rabbitmq:rabbitmq /var/log/rabbitmq
        '';
  
        postStart = mkBefore "until rabbitmqctl status; do sleep 1; done";
      };
  
    };
  
negative.code:     users.extraUsers.rabbitmq = {
        description = "RabbitMQ server user";
        home = "${cfg.dataDir}";
        createHome = true;
        group = "rabbitmq";
        uid = config.ids.uids.rabbitmq;
      };
  