Pete French
2019-Oct-31 14:58 UTC
python dameon coredumps when started from boot, but not by hand
> Hmm very odd.. > Does the tool depend on something else running?No, not at all. Earlier versions of the tool dont do this either. On a machine running the tool started by hand the two processes look like this: 0 86918 1 0 20 0 34268 23860 wait I 0- 0:00.92 python /usr/local/sbin/waagent -daemon (python3.6) 0 86986 86918 0 23 0 42380 27236 select S 0- 46:59.62 python3 -u /usr/local/sbin/waagent -run-exthandlers (python3.6)> What does the rc.d file for it look like?very simple.... #!/bin/sh # PROVIDE: waagent # REQUIRE: sshd netif dhclient # KEYWORD: nojail . /etc/rc.subr PATH=$PATH:/usr/local/bin:/usr/local/sbin name="waagent" rcvar="waagent_enable" pidfile="/var/run/waagent.pid" command="/usr/local/sbin/${name}" command_interpreter="python" command_args="start" load_rc_config $name run_rc_command "$1" my installed python is a symblic link to python3.6, and thats about as basic as an rc file gets. Its in /etc/rc.d not /usr/local/etc/rc.d but I dont think thats going to matter. I suppose I could try and find the bit in the python where it starts the 2nd process and chnage that to log any outout somehow maybe ? -pete.
O'Connor, Daniel
2019-Oct-31 20:53 UTC
python dameon coredumps when started from boot, but not by hand
> On 1 Nov 2019, at 01:28, Pete French <petefrench at ingresso.co.uk> wrote: > >> Hmm very odd.. >> Does the tool depend on something else running? > > No, not at all. Earlier versions of the tool dont do this either. > > On a machine running the tool started by hand the two processes look like this: > > 0 86918 1 0 20 0 34268 23860 wait I 0- 0:00.92 python /usr/local/sbin/waagent -daemon (python3.6) > 0 86986 86918 0 23 0 42380 27236 select S 0- 46:59.62 python3 -u /usr/local/sbin/waagent -run-exthandlers (python3.6)OK.>> What does the rc.d file for it look like? > > very simple.... > > #!/bin/sh > > # PROVIDE: waagent > # REQUIRE: sshd netif dhclient > # KEYWORD: nojail > > . /etc/rc.subr > > PATH=$PATH:/usr/local/bin:/usr/local/sbin > name="waagent" > rcvar="waagent_enable" > pidfile="/var/run/waagent.pid" > command="/usr/local/sbin/${name}" > command_interpreter="python" > command_args="start" > > load_rc_config $name > run_rc_command "$1" > > my installed python is a symblic link to python3.6, and thats about as basic > as an rc file gets. Its in /etc/rc.d not /usr/local/etc/rc.d but I dont think > thats going to matter. > > I suppose I could try and find the bit in the python where it starts the 2nd process and chnage that to log any outout somehow maybe ?Hmm, does changing the command_args line to this work: command_args="start 2>/tmp/waagent.log" work? -- Daniel O'Connor "The nice thing about standards is that there are so many of them to choose from." -- Andrew Tanenbaum
Pete French
2019-Nov-01 12:56 UTC
python dameon coredumps when started from boot, but not by hand
> Hmm, does changing the command_args line to this work: > command_args=3D"start 2>/tmp/waagent.log" > work?That is byte-for-byte identical to what I tried :-) It creates the file in /tmp, but the file remains empty. I think I need to look at the source code to work out whats up with it (on the github link in my original email). As I now know its one piece of python which attemopts to start another, and we know the bit started directly from rc.d works, then this may not be something within BSD after all. -pete.