On Mon, Oct 29, 2018 at 08:36:13AM +0100, Sebastien Marie wrote: > On Mon, Oct 29, 2018 at 12:48:19AM +0100, Antoine Jacoutot wrote: > > On Sun, Oct 28, 2018 at 07:18:53PM +0100, Sebastien Marie wrote: > > > On Sun, Oct 28, 2018 at 05:21:38PM +0100, Antoine Jacoutot wrote: > > > > > > > > Thinking about it I wonder if this shouldn't just be "fixed" in the rc.d > > > > script itself. > > > > > > it could, but I am expecting some others rc.d files to need the same > > > "fix". > > > > > > > Manually running pg_ctl as root (from /root for example) would fail the > > > > same > > > > way. So I think it's more an issue with the way pg_ctl works. > > > > > > no. pg_ctl failed because it is run as "_postgresql" under /root. > > > > Yes exactly, so it *is* an issue with the way pg_ctl works. > > Show me another utility that breaks like this. > > multimedia/motion > > # cd /root && rcctl -d start motion > doing _rc_parse_conf > doing _rc_quirks > motion_flags empty, using default >< > doing _rc_parse_conf /var/run/rc.d/motion > doing _rc_quirks > doing rc_check > motion > doing rc_pre > doing rc_start > doing _rc_wait start > doing rc_check > doing rc_check > [0:Unknown] [ERR] [ALL] conf_load: Error getcwd: Permission denied > doing _rc_rm_runfile > (failed) > > > Please note I am not against correcting it in the rc.d file. But what > bother me is the problem could only be found at runtime when manually > using rcctl (like using "doas rcctl") under private directory (/root or > if using doas if your home directory is 0700). So issues will not be > catch easily.
Alright, in this case, I will fix rc.subr accordingly. Let me think about the best way, for now I'll just revert. Thanks. > Possible candidates of failing daemons are the one that are started as > unpriv user (using daemon_user), and doing getcwd() at some point. > > With the first caracteristic, by grepping the port tree, I found 92 > candidates (file under pkg/ with "daemon_user=" string) over the 365 > rc.d files (file under pkg/ with "daemon=" string). It is a lot of port > the check. > > The simple method to check is to start from a working state (a program > already configured) and run: > > $ doas -s > # cd /root && rcctl restart $daemon > > > The list is: > > audio/zeya/pkg/zeya.rc > audio/squeezelite/pkg/squeezelite.rc > comms/conserver/pkg/conserver.rc > comms/lcdproc/pkg/lcdexec.rc > comms/lcdproc/pkg/lcdproc.rc > databases/mongodb/pkg/mongod.rc > databases/pgpool/pkg/pgpool.rc > databases/postgresql/pkg/postgresql.rc > databases/redis/pkg/redis.rc > databases/riak/pkg/riak.rc > databases/influxdb/pkg/influxdb.rc > databases/puppetdb5/pkg/puppetdb.rc > databases/puppetdb4/pkg/puppetdb.rc > devel/go-tools/pkg/godoc.rc > devel/jenkins/pkg/jenkins.rc > devel/py-buildbot/buildbot/pkg/buildbot.rc > devel/py-buildslave/pkg/buildbot_worker.rc > devel/subversion/pkg/svnserve.rc > devel/distcc/pkg/distccd.rc > games/wesnoth/pkg/wesnothd.rc > games/hedgewars/pkg/hedgewars_server.rc > games/ioquake3/pkg/ioq3ded.rc > games/yquake2/pkg/q2ded.rc > geo/osrm-backend/pkg/osrm_routed.rc > graphics/orthanc/server/pkg/orthanc.rc > mail/dspam/pkg/dspam.rc > mail/rmilter/pkg/rmilter.rc > misc/rocrail/pkg/rocrail.rc > multimedia/minidlna/pkg/minidlna.rc > multimedia/motion/pkg/motion.rc > net/apache-activemq/pkg/activemq.rc > net/bitlbee/pkg/bitlbee.rc > net/cvsync/pkg/cvsyncd.rc > net/ddclient/pkg/ddclient.rc > net/icinga/core2/pkg/icinga2.rc > net/mfi/pkg/mfi.rc > net/minbif/pkg/minbif.rc > net/mon/server/pkg/mon.rc > net/munin/pkg/munin_asyncd.rc > net/openfire/pkg/openfire.rc > net/fastnetmon/pkg/fastnetmon.rc > net/rrdtool/pkg/rrdcached.rc > net/bitcoin/pkg/bitcoind.rc > net/prosody/pkg/prosody.rc > net/rabbitmq/pkg/rabbitmq.rc > net/smokeping/pkg/smokeping.rc > net/transmission/pkg/transmission_daemon.rc > net/unifi/testing/pkg/unifi.rc > net/unifi/lts/pkg/unifi.rc > net/unifi/stable/pkg/unifi.rc > net/vnstat/pkg/vnstatd.rc > net/xl2tpd/pkg/xl2tpd.rc > net/mattermost-server/pkg/mattermost.rc > net/minio/server/pkg/minio.rc > net/syncthing/pkg/syncthing.rc > news/sabnzbd/pkg/sabnzbd.rc > productivity/radicale2/pkg/radicale.rc > productivity/radicale/pkg/radicale.rc > productivity/taskd/pkg/taskd.rc > security/spiped/pkg/spiped.rc > security/yubiserve/pkg/yubiserve.rc > security/vault/pkg/vault.rc > sysutils/backuppc/pkg/backuppc.rc > sysutils/logstash/pkg/logstash.rc > sysutils/salt/pkg/salt_api.rc > sysutils/netshot/pkg/netshot.rc > sysutils/uptimed/pkg/uptimed.rc > sysutils/consul/pkg/consul.rc > sysutils/consul-template/pkg/consul_template.rc > sysutils/nomad/pkg/nomad.rc > sysutils/facette/pkg/facette.rc > sysutils/serf/pkg/serf.rc > sysutils/rundeck/pkg/rundeck.rc > sysutils/riemann/pkg/riemann.rc > sysutils/grafana/pkg/grafana.rc > sysutils/prometheus/pkg/prometheus.rc > sysutils/restic-rest-server/pkg/restic_rest_server.rc > telephony/baresip/restund/pkg/restund.rc > telephony/stuntman/pkg/stunserver.rc > telephony/coturn/pkg/turnserver.rc > textproc/elasticsearch/pkg/elasticsearch.rc > textproc/solr/pkg/solr.rc > www/cntlm/pkg/cntlm.rc > www/gitea/pkg/gitea.rc > www/vnu/pkg/vnu.rc > www/puppetboard/pkg/puppetboard.rc > www/sogo/pkg/sogod.rc > www/tomcat/v6/pkg/tomcat.rc > www/tomcat/v7/pkg/tomcat.rc > www/tomcat/v8/pkg/tomcat.rc > www/trac/pkg/tracd.rc > www/kibana/pkg/kibana.rc > > -- > Sebastien Marie -- Antoine