Custody plugin to clear port conflicts between processes

Usage no npm install needed!

<script type="module">
  import custodyPluginClearPortConflicts from 'https://cdn.skypack.dev/@custody/plugin-clear-port-conflicts';



If you're using Supervisor for local development of microservices, the processes launched by Supervisor are probably not the servers themselves but rather build processes, which in turn launch the servers. The process tree might look something like this:

  - gulp (using gulp-nodemon)
    - node

Something in this chain tends to lose the server process, so that it keeps running, but no longer under Supervisor control. When, eventually, the "supervised" process starts/restarts, the new server crashes with an EADDRINUSE error.

This custody plugin can automatically fix such port conflicts.


npm install -g @custody/plugin-command-clear-port-conflicts

Then launch custody-cli settings and add "@custody/plugin-command-clear-port-conflicts" to your .custodyrc. Finally, restart custody-cli to get it to pick up the new plugin.

This module requires that you instrument every process you wish to de-conflict with @custody/probe, please configure that before proceeding. This is because this plugin requires @custody/probe to report the EADDRINUSE error, as described here.


Once you've set up the plugin and probe(s) as described above, this plugin will operate automatically.

How it works

When the plugin detects a port conflict, it will kill the process listening to your desired port, then restart the supervised process.


We welcome bug reports and feature suggestions!