Hello! jor...@geoghegan.ca (Jordan Geoghegan), 2023.04.20 (Thu) 23:08 (CEST): > Hello, > > tl;dr: Is there any way to pass an environment variable to a daemon started > with rc.d?
There's a way via login.conf(.d), here's an example I use: sogod:\ :openfiles-cur=1024:\ :openfiles-max=2048:\ :setenv=GNUSTEP_STRING_ENCODING=NSUTF8StringEncoding:\ :tc=daemon: Marcus > A bit of context for those interested: > > I'm trying to run Apache Airflow from an rc.d script so I can make use of > rcctl and other niceties. My rc.d script is included below. > > The problem I'm facing is that it seems that Airflow looks for various > environment variables such as $HOME, $AIRFLOW_HOME, $AIRFLOW_CONFIG etc and > I'm seeing no obvious way to pass those requisite environment variables to > Airflow from my rc.d script. Without these variables set, Airflow annoyingly > just looks in /dev/null for everything and fails to function. > > I'm probably missing something obvious, but hoping the fine folks here can > point me in the right direction. > > Regards, > > Jordan > > > # Airflow scheduler rc.d script: > > #!/bin/ksh > # > > daemon="/usr/local/bin/airflow scheduler -D" > daemon_flags="-l - --stderr - --stdout -" > daemon_user="_airflowd" > daemon_logger="daemon.info" > daemon_timeout="60" > > . /etc/rc.d/rc.subr > > pexp=".*python.* ${daemon} ${daemon_flags}" > rc_reload=NO > > rc_pre() { > rm -f /var/airflow/airflow/airflow-scheduler.pid > } > > rc_cmd $1 > > > # Airflow webserver r rc.d script: > > #!/bin/ksh > # > > daemon="/usr/local/bin/airflow webserver -D -E -" > daemon_flags="-p 8080 -l - --stderr - --stdout -" > daemon_user="_airflowd" > daemon_logger="daemon.info" > > . /etc/rc.d/rc.subr > > pexp=".*python.* ${daemon} ${daemon_flags}" > rc_reload=NO > > rc_pre() { > rm -f /var/airflow/airflow/airflow-webserver.pid \ > /var/airflow/airflow/airflow-webserver-monitor.pid > } > > rc_cmd $1 >