Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to setup a group in supervisord?

So I'm setting up supervisord and trying to control several processes and that all works fine, now I want to setup a group so I can start/stop different sets of processes rather than all or nothing. Here's a snippet of my config file.

[group:tapjoy] programs=tapjoy-game1,tapjoy-game2  [program:tapjoy-game1] command=python tapjoy_pinger.py -g game1 directory=/go/here/first redirect_stderr=true autostart=true autorestart=true stopasgroup=true killasgroup=true  [program:tapjoy-game2] command=python tapjoy_pinger.py -g game2 directory=/go/here/first redirect_stderr=true autostart=true autorestart=true stopasgroup=true killasgroup=true 

Now from reading the docs this looks to me like it should work, but calling supervisorctl restart tapjoy: doesn't do anything.

Am I missing something?

Adding a star doesn't give an error, but doesn't do anything either.

supervisorctl restart tapjoy:* supervisorctl status tapjoy_game1                     RUNNING    pid 4697, uptime 1 day, 21:56:23 tapjoy_game2                     RUNNING    pid 4698, uptime 1 day, 21:56:23 tapjoy_game3                     RUNNING    pid 4699, uptime 1 day, 21:56:23 tapjoy_game4                     RUNNING    pid 4700, uptime 1 day, 21:56:23 tapjoy_game5                     RUNNING    pid 4701, uptime 1 day, 21:56:23 
like image 284
Joshua Olson Avatar asked Oct 16 '12 20:10

Joshua Olson


People also ask

How do I start a supervisord process?

To start supervisord, run $BINDIR/supervisord. The resulting process will daemonize itself and detach from the terminal. It keeps an operations log at $CWD/supervisor.

How do you use Supervisorctl?

Once our configuration file is created and saved, we can inform Supervisor of our new program through the supervisorctl command. First we tell Supervisor to look for any new or changed program configurations in the /etc/supervisor/conf. d directory with: sudo supervisorctl reread.

What is Supervisorctl command?

supervisorctl - supervisorctl Documentation Supervisor is a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems. It shares some of the same goals of programs like launchd, daemontools, and runit.


2 Answers

You need to use a * wildcard to select all programs in a group:

supervisorctl restart tapjoy:* 

Note: it may that your shell requires you to escape the *, usually with \*

like image 139
Martijn Pieters Avatar answered Sep 20 '22 15:09

Martijn Pieters


I know it's an old thread, but I ran into the same problem, and it would've been good to find the answer here. So for future reference, instead of:

program=tapjoy-game1,tapjoy-game2 

You need:

programs=tapjoy-game1,tapjoy-game2 

Docs: http://supervisord.org/configuration.html#group-x-section-values

like image 36
Garpeer Avatar answered Sep 17 '22 15:09

Garpeer