Posted 6 months ago. Visible to the public.

Procfile support

If you need to run specific program(s) and be sure they will get restarted if they die or after a reboot, then you can create a file named Procfile in your repository.

If you want to use this feature, please contact ops@makandra.de, then we will enable it for your deployment.

Procfile Syntax

At the moment we only have limited Procfile features. The syntax is:

Copy
$program_name: $command

e.g.:

Copy
sidekiq: bundle exec sidekiq

Important: The defined commands should not daemonize, as then the supervisor can't track them anymore.

Deployment commands

After you've created this file, you also need to include these commands in your deployment:

  • supervisor_gen_config

This command generated the configuration for the supervisor. You need to run it before the other supervisor commands and at least every time you change your Procfile. But there is no harm running it at every deploy.

  • supervisor_restart_procs

This command rereads the supervisor configuration and (re)starts all configured programs.

  • supervisor_stop_procs

This command stops all your programs in case you want to them to be stopped while your deployment runs.

  • supervisor_signal_procs $signal $program_name(optional)

This command sends the signal $signal (e.g. USR1 or TSTP) to all programs or if specified to $program_name.

Logs

The output of your programs (stdout and stderr) will get written into log files. You will find these logs here:

Copy
# stdout: ${appdir}/shared/log/${program_name}-1.log # stderr: ${appdir}/shared/log/${program_name}-1.error.log

Miscellaneous

At the moment we use supervisord as supervisor. But as we will perhaps change this in the future, please use the commands described above and do not manually create a configuration.

Owner of this card:

Avatar
Kim Jahn
Last edit:
6 months ago
by Kim Jahn
Posted by Kim Jahn to opscomplete
This website uses cookies to improve usability and analyze traffic.
Accept or learn more