Hi,

> On 19 May 2026, at 10:07 PM, Steve Shockley <[email protected]> 
> wrote:
> 
> Hi, I'm using OpenBSD 7.8 and -current, and for a variety of reasons I'm 
> using Net-SNMPD instead of the built-in one.  Previously I was forwarding 
> from net_snmpd using proxy to snmpd listening on localhost. I recently 
> discovered snmpd_metrics, which seems to do something similar without 
> worrying about which oids to forward.
> 
> If I add agentx to the net_snmpd config and run snmpd_metrics -d -v, it works 
> great and I can see all the queries.  The documentation is a little sparse, 
> but I discovered in the initial commit message (end of 
> https://cvsweb.openbsd.org/log/src/libexec/snmpd/snmpd_metrics/mib.c,v) that 
> it needs to be run as a daemon.
> 
> Is a template available for rc.d?  I can write one myself, but what user 
> should it run as?

You can check the /etc/rc.d directory. Looking at the tree, something like
this should do (/etc/rc.d/net_snmpd):

```
#!/bin/ksh
#
# <description>

daemon="/usr/local/sbin/snmpd"
daemon_flags="-u _netsnmp -I -p /var/run/net_snmpd.pid"
# or skip IPv6: daemon_flags="-u _netsnmp -I -ipv6 -p /var/run/net_snmpd.pid"

. /etc/rc.d/rc.subr

rc_pre() {
  install -d -o _netsnmp -g _snmpd -m 0770 /var/agentx
}

rc_reload=NO # apparently not supported, use `restart`

rc_cmd $1
```

I'd go with a dedicated user e.g.
`_netsnmp':  `useradd -s /sbin/nologin -d /nonexistent _netsnmp`

>  I noticed if snmpd_metrics is running and net_snmpd restarts, it prints
>  [fd:4]: lost connection: Connection reset by peer
>  Failed to connect to snmpd: Permission denied
>  Failed to connect to snmpd: Permission denied
>
> and never recovers.  Is there a way to make snmpd_metrics "depend" on 
> net_snmpd so if net_ restarts it also restarts _metrics?  (Or should it be 
> able to recover from that?)

The rc system supports order through the “pkg_scripts” keyword[1], but
not that kind of scenario. So you can do something like:


> I noticed if snmpd_metrics is running and net_snmpd restarts, it prints
> [fd:4]: lost connection: Connection reset by peer
> Failed to connect to snmpd: Permission denied
> Failed to connect to snmpd: Permission denied
> 
> and never recovers.  Is there a way to make snmpd_metrics "depend" on 
> net_snmpd so if net_ restarts it also restarts _metrics?  (Or should it be 
> able to recover from that?)


But that's for the boot process only. AFAIK only systemd does take care
the scenario you described. Maybe a cron script with the following
logic: when App1 PID changes, restart App1. 


Kind regards,


[1] https://man.openbsd.org/rc.conf.8 and 

--
Panagiotis (atmosx) Atmatzidis


Reply via email to