コマンドラインツール servbayctl
servbayctl は、ServBayが提供する強力なコマンドラインツールで、開発者がターミナル上で直接ServBayのバックエンドサービス管理を実現するために設計されています。servbayctlを使えば、サービスの起動・停止・リロード・再起動・強制終了・ステータス確認・全サービスの停止といった操作を簡単に実行でき、スクリプトによる自動化やサービス状態の素早い切り替え、もしくはCLIインターフェースを好む開発者にとって非常に便利です。
本ドキュメントでは、servbayctlの使い方、対応コマンド、利用可能なパラメータおよびサポートサービスについて詳しく説明します。
概要
ServBayは、直感的なグラフィカルユーザーインターフェース(GUI)でローカルWeb開発環境を管理できるだけでなく、servbayctlというコマンドラインインターフェース(CLI)ツールも用意しています。servbayctlはServBayインストールディレクトリのscriptフォルダ内に格納されており、簡単なコマンドを打つだけで、インストール済みソフトウェアパッケージのサービス状態をコントロールできます。
servbayctlを利用する主なメリット:
- 自動化: サービス管理操作を開発ワークフローやスクリプトに簡単組み込み。
- 効率化: GUIを開くことなく、特定サービスを素早く起動・停止可能。
- 柔軟性: リモートSSHやヘッドレス環境でも活用可能。
- 詳細コントロール: サービスやバージョンを指定してピンポイント操作が可能。
前提条件
servbayctlの利用にあたり、以下をご確認ください:
ServBayが正常にインストールされていること。
ターミナルへアクセスできること。
(推奨)利便性向上のため、
/Applications/ServBay/scriptディレクトリをシステムのPATH環境変数に追加してください。これにより、どこからでもservbayctlと入力して実行できます。BashやZshユーザーの場合、
~/.bash_profile、~/.bashrc、~/.zshrc、~/.profileなどに、以下の行を追加します:bashexport PATH="/Applications/ServBay/script:$PATH"1編集後は、
source ~/.bash_profile(または変更したファイル)を実行、もしくはターミナルを再起動してください。
利用構文
servbayctlの基本構文は以下の通りです:
bash
servbayctl <command> <service> [parameters]1
<command>:実行したい操作(例:start,stop,restartなど)<service>:対象とするサービス名(例:php,mysql,caddyなど)[parameters]:任意パラメータで、サービスバージョンや範囲(例:7.4や-all)を指定
ServBayが提供するservbayctlのUsage情報につき、対応コマンドと基本構文は下記です:
Usage: /Applications/ServBay/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
※ stop-allコマンドにはサービス名やパラメータは不要で、ServBay管理下の全サービスを停止します。
サポートコマンド詳細解説
servbayctlでサポートされている各コマンドの解説と例を紹介します。
start - サービスの起動
指定したサービスを起動します。バージョンを指定するか、-allパラメータで全インストール済みバージョンを一括起動可能です。
bash
servbayctl start <service> [-all|version]1
- 例:PHP 8.1サービスの起動bash
servbayctl start php 8.11 - 例:インストール済み全PHPバージョンの起動bash
servbayctl start php -all1 - 例:デフォルト設定のMySQLサービス起動bash
servbayctl start mysql1
stop - サービスの停止
指定サービスを停止します。バージョン指定や全バージョン一括停止(-all)にも対応。
bash
servbayctl stop <service> [-all|version]1
- 例:PHP 7.4サービスの停止bash
servbayctl stop php 7.41 - 例:MariaDB全バージョンの停止bash
servbayctl stop mariadb -all1 - 例:Redisサービスの停止bash
servbayctl stop redis1
reload - サービス設定のリロード
指定サービスの設定をリロードします。設定ファイル修正後、サービスを再起動せずに反映できる場合に有効です。一部サービスのみ対応。
bash
servbayctl reload <service> [-all|version]1
- 例:Caddy Webサーバーの設定リロードbash
servbayctl reload caddy1 - 例:全PHPバージョンの設定リロード(対応していれば)bash
servbayctl reload php -all1
restart - サービスの再起動
サービスを停止した後、再度起動する操作です。
bash
servbayctl restart <service> [-all|version]1
- 例:PostgreSQLデータベースの再起動bash
servbayctl restart pgsql1 - 例:全Redisバージョンの再起動(複数バージョン存在時)bash
servbayctl restart redis -all1
kill - サービスプロセスの強制終了
指定サービスのプロセスを強制的に終了します。これは緊急停止に用い、データ損失や破損のリスクがあるため注意が必要です(特にデータベースサービス)。
bash
servbayctl kill <service> [-all|version]1
- 例:PHP 7.4サービスプロセスを強制終了bash
servbayctl kill php 7.41 - 例:全Memcachedサービスプロセスを強制終了bash
servbayctl kill memcached -all1
status - サービス状態の確認
指定サービスの現在状態(稼働中か否か)を表示します。
bash
servbayctl status <service> [-all|version]1
- 例:Caddyサービスの状態確認bash
servbayctl status caddy1 - 例:全MySQLバージョンの状態確認bash
servbayctl status mysql -all1
stop-all - ServBay全サービスの停止
ServBay管理下で稼働中の全サービスを一括停止します。サービス名・バージョン指定不可のグローバルコマンドです。
bash
servbayctl stop-all1
- 例:全ServBayバックグラウンドサービスの停止bash
servbayctl stop-all1
サポートサービス一覧
servbayctlのUsage情報をもとに、以下のバックエンドサービス種別を直接制御できます:
php: 各バージョンのPHP-FPMプロセス管理mariadb: MariaDBデータベースサービスmysql: MySQLデータベースサービスpostgresql: PostgreSQLデータベースサービスredis: Redisキャッシュ/データベースサービスmemcached: Memcachedキャッシュサービスcaddy: Caddy Webサーバーサービスnginx: Nginx Webサーバーサービスapache: Apache HTTPサーバーサービスdnsmasq: ServBay内蔵DNSサービスmongodb: MongoDBデータベースサービスrabbitmq: RabbitMQメッセージキューサービスcloudflared: Cloudflare Tunnelサービス(インストール・設定済みの場合)frpc: Fatedier/frpクライアントサービス(インストール・設定済みの場合)mailpit: Mailpitメールキャプチャツールサービスweb: Web系サービス(動作詳細は用途・構成により異なります。例:WebサーバーやServBay関連Web API等)ollama: OllamaローカルLLMサービス
なお、servbayctlは現在、NginxやApacheを含む多くの主要バックエンドサービスを直接管理可能です。ServBayでは他にもJava、Python、Go、.NET、Ruby、Rust等のパッケージを多数提供していますが、これらはservbayctlの制御下でデーモン(バックグラウンドサービス)として稼働するものではなく、ターミナル直実行や固有の管理方法が必要です。servbayctlは主に上記リストにあるコアなバックグラウンドサービスの管理に特化しています。
主なユースケース例
servbayctl活用の具体的シーン例を紹介します:
PHPバージョンを素早く切り替えてテスト
bashservbayctl stop php -all servbayctl start php 8.21
2設定変更時、データベースサービスの再起動
bash# my.cnf または my.ini を変更した場合 servbayctl restart mysql1
2システムシャットダウンやServBayアップデート前に全サービスを完全停止
bashservbayctl stop-all1Webサーバーの稼働確認
bashservbayctl status caddy1スクリプトを使った開発環境自動起動
bash#!/bin/bash echo "全ServBayサービスを停止中..." servbayctl stop-all echo "必要なサービスを起動中..." servbayctl start php 8.1 servbayctl start mysql servbayctl start caddy servbayctl start redis echo "ServBayサービスが起動しました。"1
2
3
4
5
6
7
8
9
10
11
12
注意事項 & ベストプラクティス
- PATH追加推奨:
servbayctlのあるディレクトリをPATHに追加し、コマンド入力を簡素化しましょう。 killコマンドは要注意: この操作は強制的なプロセス終了のため、未保存データ消失やサービス異常の危険があります。通常はstopかrestartの利用を優先してください。stop-allは全体操作: 全サービスを一括停止するため、実行前に必ず必要性を確認しましょう。- バージョン指定:
versionパラメータ指定時、そのバージョンがServBayでインストール・サポート済みであることを確認してください。バージョンはServBay GUIでも確認可能です。 - エラー時の対処:
servbayctl実行が失敗した場合、エラー内容が端末に表示されます。内容に従い確認や、ServBayインストールフォルダ内のlogsの該当ログで詳細を探してください。 - GUI&CLI併用:
servbayctlはGUIの補完ツールです。複雑な設定や全体把握はGUIの利用が便利です。
よくある質問(FAQ)
Q: servbayctl実行時に「command not found」と出る場合は?
A: これは大抵、/Applications/ServBay/scriptディレクトリがPATH環境変数に追加されていないためです。本書「前提条件」記載の手順でディレクトリをPATHに追加してください。
Q: servbayctl start <service>でサービスが起動しない場合、どう対処すればよいですか?
A:
- まず
servbayctl status <service>で状態を再確認。 - ServBayインストールディレクトリ直下の
logsフォルダで該当サービスのエラーログを確認。起動失敗の原因特定に有効です。 - サービスをServBay GUIから起動してみる(GUIの方が親切なエラーメッセージを表示することがあります)。
- サービスの設定ファイルミスがないか見直してください。
Q: すべてのサービスで-allパラメータは使えますか?
A: -allはバージョン管理型サービス(例:PHP)で主に活用されます。MySQLやPostgreSQLなど多くのDB系やCaddyなどWebサーバーは通常1インスタンスのみ動作するため、-all指定とバージョン未指定はほぼ同等です。RedisやMemcachedのように複数インスタンスを異なるポートで起動できるサービスでは、-allでこれら全体を操作できる場合があります(ServBay内部実装次第です)。
まとめ
servbayctlは、ServBayを使う開発者にとって、ローカル開発環境サービスの効率的管理を実現する強力なCLIインターフェースです。start、stop、reload、restart、kill、status、stop-allといった各種コマンド、ならびにversionや-allパラメータ活用により、PHP、MySQL、MariaDB、PostgreSQL、MongoDB、Redis、Memcached、Caddyなどのサービスをターミナルから自在にコントロールし、スムーズな自動化ワークフロー構築や開発体験の向上が実現できます。
