---
title: Gérez vos processus Ruby avec Overmind
url: https://sxnlabs.com/ruby/2023/11/03/manage-ruby-processes-overmind/
lang: fr
date: '2023-11-03T16:30:00+02:00'
tags:
- Debugging
- Ruby
- Tools
---

# Gérez vos processus Ruby avec Overmind

Ruby on Rails 7 a introduit un nouvel exécutable `bin/dev`.
Il ne sera pas présent par défaut à moins que vous ne créiez une nouvelle application avec l'option `--css` ou que vous lanciez la commande `css:install`.

Ce fichier appelle la Gem [Foreman](https://github.com/ddollar/foreman) qui va à son tour exécuter les processus définis dans le fichier `Procfile.dev` à la racine de votre projet.

Cette manière de fonctionner vous permet de lancer autant de processus que vous le souhaitez en parallèle, en une seule commande.

Voici un exemple de `Procfile` sur l'un de mes projets.

```
web: bin/rails server -p 3000
css: bin/rails tailwindcss:watch
worker: bundle exec good_job start
guard: bundle exec guard
stripe: stripe listen --forward-to localhost:3000/pay/webhooks/stripe
```

Tout ceci fonctionne parfaitement jusqu'au moment où vous avez besoin de débugger votre application avec des points d'arrêt.
Foreman ne vous permet pas d'accéder à la console de debug d'un processus particulier.

C'est là qu'intervient [Overmind](https://github.com/DarthSim/overmind).
Ce programme fait exactement la même chose que Foreman tout en vous permettant de vous connecter à vos processus.

Installez Overmind sur votre machine comme suit :

```bash
# on macOS (with homebrew)
$ brew install tmux

# on Ubuntu
$ apt-get install tmux
```

Puis lancer vos processus :

```bash
$ overmind s -f Procfile.dev
```

![Commande overmind server](https://sxnlabs.com/images/posts/figures/2023-11-03/overmind-server.webp)

Je vais maintenant mettre un point d'arrêt dans un contrôleur Rails du processus _web_.

```ruby
class HomeController < ApplicationController
  def index
    debugger
    # ...
  end
end
```

Depuis un autre terminal, mais dans le même répertoire (où se situe votre Procfile.dev), lancez la commande suivante :

```bash
$ overmind c web
```

![Commande overmind connect](https://sxnlabs.com/images/posts/figures/2023-11-03/overmind-connect.webp)

Vous pouvez maintenant accéder à la console de Ruby ! 🎉

Bien entendu, cette fonctionnalité n'est pas limitée à Ruby et fonctionne avec n'importe quel programme/langage.
