supervisord event listener

2024/11/13 21:32:14

I'm trying to configure an event listener for supervisord but can't get it to work. I just want to listen for PROCESS_STATE changes and run some python code triggering an urllib2request.

In my .conf I have:

[eventlistener:statechanges]
command=python listener.py
events=PROCESS_STATE

And in listener.py:

def run():    runFunc() # Function to trigger an urllib2requestif __name__ == '__main__':run()

Then the trigger won't start, it just enters the FATAL state after some retries.

statechanges entered FATAL state, too many start retries too quickly

Any ideas or does someone have an example of how to write a listener for supervisord?

Answer

You can't just print random strings, supervisord listens at the stdout :)

How about this example from the docs:

import sysdef write_stdout(s):sys.stdout.write(s)sys.stdout.flush()def write_stderr(s):sys.stderr.write(s)sys.stderr.flush()def main():while 1:write_stdout('READY\n') # transition from ACKNOWLEDGED to READYline = sys.stdin.readline()  # read header line from stdinwrite_stderr(line) # print it out to stderrheaders = dict([ x.split(':') for x in line.split() ])data = sys.stdin.read(int(headers['len'])) # read the event payloadwrite_stderr(data) # print the event payload to stderrwrite_stdout('RESULT 2\nOK') # transition from READY to ACKNOWLEDGEDif __name__ == '__main__':main()import sys

http://supervisord.org/events.html#example-event-listener-implementation

https://en.xdnf.cn/q/71832.html

Related Q&A

Integration of Java and Python Code in One Eclipse Project

I am writing a compiler in Python using Eclipse with PyDev. Ive come to a stage where I needed to write some code in Java. Im wandering if there is a way of combining these into a single project, bec…

formatting of timestamp on x-axis

Im trying to format the x-axis in my weather data plot. Im happy with the y-axis but all my tries to get the x-axis into a decent, human-readable format didnt work so far. So after several hours of tri…

How can I set the row height in Tkinter TreeView?

I wrote a small app recently that needs to be cross-platform. I used Python and Tkinter for the GUI.It works great but recently I got a new laptop with a hiDPI screen and it seems to mess up the TreeVi…

Is replace row-wise and will overwrite the value within the dict twice?

Assuming I have following data set lst = [u, v, w, x, y] lst_rev = list(reversed(lst)) dct = dict(zip(lst, lst_rev))df = pd.DataFrame({A:[a, b, a, c, a],B:lst},dtype=category)Now I want to replace the …

Python requests, how to add content-type to multipart/form-data request

I Use python requests to upload a file with PUT method.The remote API Accept any request only if the body contains an attribute Content-Type:i mage/png not as Request Header When i use python requests…

Django Year/Month based posts archive

im new to Django and started an application, i did the models, views, templates, but i want to add some kind of archive to the bottom of the page, something like this http://www.flickr.com/photos/ion…

ValueError: You are trying to load a weight file containing 6 layers into a model with 0

I have a simple keras model. After the model is saved. I am unable to load the model. This is the error I get after instantiating the model and trying to load weights:Using TensorFlow backend. Tracebac…

cProfile with imports

Im currently in the process of learn how to use cProfile and I have a few doubts.Im currently trying to profile the following script:import timedef fast():print("Fast!")def slow():time.sleep(…

Python AWS Lambda 301 redirect

I have a lambda handler written in Python and I wish to perform a 301 redirect to the browser. I have no idea how I can configure the response Location header (or the status code) -- the documentation …

Google Authenticator code does not match server generated code

BackgroundIm currently working on a two-factor authentication system where user are able to authenticate using their smartphone. Before the user can make use of their device they need to verify it firs…