Outil en ligne de commande servbayctl 
servbayctl est un puissant outil en ligne de commande fourni par ServBay, conçu pour offrir aux développeurs la possibilité de gérer directement, depuis le terminal, les services d’arrière-plan de ServBay. Avec servbayctl, vous pouvez facilement démarrer, arrêter, recharger, redémarrer, forcer l'arrêt, visualiser le statut et interrompre tous les services, ce qui est particulièrement utile pour l'automatisation de scripts, le basculement rapide de l’état des services ou pour les développeurs qui préfèrent l’interface en ligne de commande.
Ce guide explique en détail comment utiliser servbayctl, ainsi que les commandes, paramètres et services pris en charge.
Présentation 
ServBay n’offre pas uniquement une interface graphique intuitive (GUI) pour la gestion de votre environnement web local, il inclut également l’outil en ligne de commande (CLI) servbayctl. Localisé dans le dossier script du répertoire d'installation de ServBay, servbayctl vous permet de contrôler facilement, à l’aide de simples commandes, l’exécution des divers paquets logiciels installés via ServBay en tant que services d’arrière-plan.
Les avantages d’utiliser servbayctl incluent :
- Automatisation : intégrez facilement la gestion des services dans vos scripts de workflow de développement.
 - Efficacité : démarrez ou arrêtez rapidement des services spécifiques sans ouvrir l’interface graphique.
 - Flexibilité : idéal pour les connexions SSH distantes ou les environnements sans interface graphique.
 - Contrôle précis : possibilité de cibler des services ou versions spécifiques.
 
Prérequis 
Avant d'utiliser servbayctl, assurez-vous que :
ServBay est correctement installé sur votre système.
Vous avez accès à un terminal.
(Facultatif, recommandé) Pour simplifier l’utilisation, ajoutez le dossier
/Applications/ServBay/scriptà la variable d’environnement PATH de votre système. Cela vous permettra d’exécuter la commandeservbayctldepuis n’importe quel emplacement, sans avoir à taper le chemin complet.Pour les utilisateurs de Bash ou Zsh, modifiez l’un de vos fichiers
~/.bash_profile,~/.bashrc,~/.zshrcou~/.profileet ajoutez la ligne suivante :bashexport PATH="/Applications/ServBay (macOS) ou C:\ServBay (Windows)/script:$PATH"1Sauvegardez le fichier, puis exécutez
source ~/.bash_profile(ou le fichier que vous avez modifié) pour appliquer les modifications, ou redémarrez simplement votre terminal.
Syntaxe d’utilisation 
La syntaxe de base de la commande servbayctl est la suivante :
bash
servbayctl <command> <service> [parameters]1
<command>: L’action souhaitée (par exemplestart,stop,restart).<service>: Le nom du service à gérer (par exemplephp,mysql,caddy).[parameters]: Paramètres optionnels, pour préciser la version ou l’étendue (7.4ou-all, par exemple).
Selon la documentation fournie par ServBay, les commandes supportées et la structure de base sont les suivantes :
Usage: /Applications/ServBay (macOS) ou C:\ServBay (Windows)/script/servbayctl {start|stop|reload|restart|kill|status|stop-all} {php|mariadb|mysql|postgresql|redis|memcached|caddy|nginx|apache|dnsmasq|mongodb|rabbitmq|cloudflared|frpc|mailpit|web|ollama} [-all|version]1
À noter : la commande stop-all ne prend ni nom de service ni paramètre. Elle arrête tous les services gérés par ServBay.
Détail des commandes supportées 
Voici les explications détaillées et des exemples concrets pour chaque commande prise en charge par servbayctl :
start - Démarrer un service 
Démarre le service spécifié. Vous pouvez préciser une version donnée ou utiliser -all pour démarrer toutes les versions installées du service.
bash
servbayctl start <service> [-all|version]1
- Exemple : Démarrer PHP 8.1 :bash
servbayctl start php 8.11 - Exemple : Démarrer toutes les versions de PHP installées :bash
servbayctl start php -all1 - Exemple : Démarrer MySQL avec la configuration par défaut :bash
servbayctl start mysql1 
stop - Arrêter un service 
Arrête le service spécifié. Vous pouvez préciser la version ou utiliser -all pour arrêter toutes les versions installées.
bash
servbayctl stop <service> [-all|version]1
- Exemple : Arrêter PHP 7.4 :bash
servbayctl stop php 7.41 - Exemple : Arrêter toutes les versions de MariaDB installées :bash
servbayctl stop mariadb -all1 - Exemple : Arrêter Redis :bash
servbayctl stop redis1 
reload - Recharger la configuration d’un service 
Recharge la configuration du service spécifié. Utile après modification d’un fichier de configuration, sans avoir à redémarrer complètement le service. Tous les services ne prennent pas en charge le rechargement à chaud.
bash
servbayctl reload <service> [-all|version]1
- Exemple : Recharger la configuration du serveur web Caddy :bash
servbayctl reload caddy1 - Exemple : Recharger la configuration de toutes les versions de PHP installées (si supporté) :bash
servbayctl reload php -all1 
restart - Redémarrer un service 
Redémarre le service spécifié (équivaut à un arrêt suivi d’un redémarrage).
bash
servbayctl restart <service> [-all|version]1
- Exemple : Redémarrer le service PostgreSQL :bash
servbayctl restart pgsql1 - Exemple : Redémarrer toutes les versions de Redis installées (si plusieurs sont présentes) :bash
servbayctl restart redis -all1 
kill - Forcer l’arrêt d’un processus 
Termine de manière forcée le processus du service spécifié. Cette commande, plus radicale, doit être utilisée avec précaution, notamment pour les bases de données car elle peut provoquer une perte ou une corruption de données. À réserver aux cas où le service ne peut être arrêté normalement.
bash
servbayctl kill <service> [-all|version]1
- Exemple : Forcer l’arrêt de PHP 7.4 :bash
servbayctl kill php 7.41 - Exemple : Forcer l’arrêt de tous les processus Memcached :bash
servbayctl kill memcached -all1 
status - Consulter le statut d’un service 
Permet de vérifier l’état (en cours d’exécution ou non) d’un service.
bash
servbayctl status <service> [-all|version]1
- Exemple : Vérifier le statut de Caddy :bash
servbayctl status caddy1 - Exemple : Vérifier le statut de toutes les versions de MySQL installées :bash
servbayctl status mysql -all1 
stop-all - Arrêter tous les services ServBay 
Arrête tous les services en arrière-plan actuellement gérés par ServBay. Cette commande globale n’accepte ni nom de service ni argument de version.
bash
servbayctl stop-all1
- Exemple : Arrêter tous les services gérés par ServBay :bash
servbayctl stop-all1 
Liste des services pris en charge 
Selon la documentation d’utilisation de servbayctl, l’outil peut gérer directement les types de services d’arrière-plan suivants :
php: gestion des différentes versions de PHP-FPM.mariadb: gestion de MariaDB.mysql: gestion de MySQL.postgresql: gestion de PostgreSQL.redis: gestion du service de cache/base de données Redis.memcached: gestion du cache Memcached.caddy: gestion du serveur web Caddy.nginx: gestion du serveur web Nginx.apache: gestion du serveur HTTP Apache.dnsmasq: gestion du service DNS intégré à ServBay.mongodb: gestion de MongoDB.rabbitmq: gestion du service de queue RabbitMQ.cloudflared: gestion du service Cloudflare Tunnel (si installé et configuré).frpc: gestion du client Fatedier/frp (si installé et configuré).mailpit: gestion de l’outil de capture d’emails Mailpit.web: gestion des services web (la signification exacte peut varier selon l’utilisation, par exemple le serveur web actif ou les interfaces web liées à ServBay).ollama: gestion du service local de grands modèles de langage Ollama.
Notez que servbayctl peut désormais gérer directement de nombreux services de base tels que Nginx et Apache. Même si ServBay prend en charge l’installation et l’utilisation d’autres outils (comme Java, Python, Go, .NET, Ruby, Rust, etc.), ces paquets ne sont généralement pas gérés comme services d’arrière-plan par servbayctl et doivent être utilisés ou gérés directement via le terminal ou leurs propres outils. servbayctl se concentre avant tout sur la gestion des services principaux tournant en mode démon.
Exemples d’utilisation courante 
Quelques scénarios typiques pour utiliser servbayctl :
Basculement rapide entre versions de PHP pour des tests :
bashservbayctl stop php -all servbayctl start php 8.21
2Redémarrage d’une base de données après modification de la configuration :
bash# Supposons que vous ayez modifié my.cnf ou my.ini servbayctl restart mysql1
2S’assurer que tous les services sont arrêtés (par exemple avant une extinction ou une mise à jour de ServBay) :
bashservbayctl stop-all1Vérification de l’état du serveur Web :
bashservbayctl status caddy1Automatiser le démarrage des services de développement dans un script :
bash#!/bin/bash echo "Arrêt de tous les services ServBay..." servbayctl stop-all echo "Démarrage des services requis..." servbayctl start php 8.1 servbayctl start mysql servbayctl start caddy servbayctl start redis echo "Les services ServBay sont démarrés."1
2
3
4
5
6
7
8
9
10
11
12
Conseils pratiques et recommandations 
- Ajout au PATH : il est fortement conseillé d’ajouter le dossier où se trouve 
servbayctldans votre PATH système, pour simplifier la saisie des commandes. - Utilisation prudente de 
kill: la commandekillforce l’arrêt du processus, ce qui peut entraîner la perte de données ou un état instable des services. Privilégiezstopourestartsauf en cas de blocage. stop-allest une opération globale : la commande arrête tous les services gérés par ServBay – soyez certain de vouloir effectuer cette action !- Paramètre de version : lorsque vous spécifiez une version, vérifiez qu’elle a bien été installée via ServBay. Vous pouvez consulter la liste des versions installées dans l’interface graphique.
 - Gestion des erreurs : en cas d’échec de la commande 
servbayctl, un message d'erreur sera affiché dans le terminal. Reportez-vous à ces messages ou consultez les fichiers de logs dans le dossierlogsde l’installation ServBay pour plus de détails. - Combiner GUI et CLI : 
servbayctlcomplète l’interface graphique. Pour les tâches complexes ou une vue d’ensemble, l’interface graphique reste une option pratique. 
FAQ – Questions fréquentes 
Q : J’obtiens l’erreur command not found en exécutant servbayctl, que faire ?
R : Cela signifie probablement que le dossier /Applications/ServBay/script n’a pas été ajouté à votre PATH système. Référez-vous à la section « Prérequis » de ce guide pour les instructions.
Q : J'utilise servbayctl start <service> pour démarrer un service, mais il ne se lance pas correctement. Que puis-je vérifier ?
R :
- Vérifiez le statut du service avec 
servbayctl status <service>. - Regardez les fichiers de logs correspondants dans le dossier 
logsde l’installation ServBay pour toute erreur spécifique. - Essayez de démarrer le même service via l’interface graphique, qui peut fournir des explications plus détaillées.
 - Vérifiez la validité de vos fichiers de configuration.
 
Q : Le paramètre -all s’applique-t-il à tous les services ?
R : -all sert principalement pour les services dont plusieurs versions peuvent être installées, comme PHP. Pour les bases de données (MySQL, PostgreSQL, etc.) ou serveurs web (Caddy), généralement une seule instance tourne : utiliser -all ou non aura le même effet, mais il est recommandé de rester explicite en nommant simplement le service. Pour Redis ou Memcached, il est possible d'avoir plusieurs instances (sur différents ports), et -all agira sur l’ensemble selon la configuration de ServBay.
Conclusion 
servbayctl est une interface en ligne de commande puissante offerte par ServBay aux développeurs. Elle permet de gérer de façon flexible et efficace les services de l’environnement de développement local. En maîtrisant les commandes start, stop, reload, restart, kill, status et stop-all, ainsi que les paramètres version et -all, vous pourrez piloter, directement depuis le terminal, tous les services pris en charge par ServBay comme PHP, MySQL, MariaDB, PostgreSQL, MongoDB, Redis, Memcached, Caddy, et bien d’autres, afin d'automatiser vos workflows et d’optimiser votre expérience de développement.
