Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: rc.d - no support for python scripts

Hi Leo!

On Mon, Aug 17, 2020 at 09:45:08AM +0200, Leonardo Taccari wrote:
> > I wanted to run a python service using an rc.d script. It knows to write a pid file, but that is not good enough for our rc.d system. It complains:
> >
> > # /etc/rc.d/syncserver stop                                                                                                                  
> > syncserver not running? (check /home/wiz/Projects/syncserver/
> >
> > I think this happens because the executable is not called “syncserver” but is started using a python2.7 binary. So I tried setting
> >
> > command_interpreter="/home/wiz/Projects/syncserver/local/bin/python2.7"
> >
> > but then I got
> >
> > /etc/rc.d/syncserver: WARNING: $command_interpreter /home/wiz/Projects/syncserver/local/bin/python2.7 != /bin/sh
> >
> > Is there a way to get python programs running nicely with rc.d and pid support (i.e. “status” and “stop” support)?
> > [...]
> Was `command' adjusted too to the path of the script?
> Can you please share the possible problematic rc.d script?
> pkgsrc/chat/miniircd/files/ is a possible example (but it
> doesn't use any pidfile).

I think the issue is with the pidfile support. Starting the service works fine.

Attached are the rc.d script and the file from /usr/local that is the
actual start script.
# $NetBSD$
# PROVIDE: syncserver

. /etc/rc.subr

# doesn't work, only /bin/sh seems to be supported
# doesn't work, since argv[0] is python2.7 and not the script name

load_rc_config $name
run_rc_command "$1"
set -e
cd /home/wiz/Projects/syncserver
./local/bin/gunicorn --paste ./syncserver.ini --access-logfile /var/log/syncserver.log  --log-syslog --pid ./

Home | Main Index | Thread Index | Old Index