Komut Satırı Aracı servbayctl
servbayctl
, ServBay tarafından sunulan güçlü bir komut satırı aracıdır ve geliştiricilerin ServBay arka plan servislerini terminal üzerinden doğrudan yönetmesine olanak tanır. servbayctl
ile servisleri başlatma, durdurma, yeniden yükleme, yeniden başlatma, zorla durdurma, durum görüntüleme ve tüm servisleri topluca durdurma gibi işlemleri kolayca gerçekleştirebilirsiniz. Bu, özellikle otomasyon scriptlerinde, servis durumunu hızlıca değiştirme gerektiğinde ya da komut satırı arayüzünü tercih eden geliştiriciler için oldukça kullanışlıdır.
Bu rehberde, servbayctl
'nin kullanım şekli, desteklenen komutları, parametreleri ve servisler ayrıntılı şekilde anlatılacaktır.
Genel Bakış
ServBay, yerel web geliştirme ortamınızı yönetmek için sezgisel bir Grafiksel Kullanıcı Arayüzü (GUI) sunmanın yanı sıra, servbayctl
isimli bir Komut Satırı Arayüzü (CLI) de sağlar. servbayctl
, ServBay'in kurulu olduğu dizindeki script
klasöründe bulunur ve terminalden basit komutlarla ServBay tarafından yönetilen yazılımları arka plan servisi olarak kontrol etmenizi sağlar.
servbayctl
kullanmanın avantajları:
- Otomasyon: Servis yönetimini kolayca kendi geliştirme iş akışınıza entegre edebilirsiniz.
- Verimlilik: GUI açmaya gerek kalmadan belirli servisleri hızla başlatıp durdurabilirsiniz.
- Esneklik: Uzaktan SSH bağlantıları veya başsız (headless) ortamlar için idealdir.
- Kesin Kontrol: Belirli bir servis veya sürüm üzerinde işlem yapabilirsiniz.
Ön Koşullar
servbayctl
'yi kullanmadan önce lütfen şunlara dikkat edin:
ServBay'in başarıyla kurulu olması gerekir.
Terminale erişim izniniz olmalıdır.
(Opsiyonel, tavsiye edilir) Kullanımı kolaylaştırmak için
/Applications/ServBay/script
dizinini sisteminizin PATH ortam değişkenine ekleyin. Böyleceservbayctl
yi tam yolu yazmadan herhangi bir klasörde doğrudan çalıştırabilirsiniz.Bash veya Zsh kullanıcıları için,
~/.bash_profile
,~/.bashrc
,~/.zshrc
veya~/.profile
dosyanıza aşağıdaki satırı ekleyin:bashexport PATH="/Applications/ServBay/script:$PATH"
1Dosyayı kaydettikten sonra, yapılan değişikliğin etkin olması için
source ~/.bash_profile
(ya da düzenlediğiniz dosya) komutunu çalıştırın veya terminali yeniden başlatın.
Kullanım Söz Dizimi
servbayctl
komutunun temel söz dizimi aşağıdaki gibidir:
bash
servbayctl <komut> <servis> [parametreler]
1
<komut>
: Yapmak istediğiniz işlem (ör.start
,stop
,restart
).<servis>
: İşlem yapmak istediğiniz servis adı (ör.php
,mysql
,caddy
).[parametreler]
: Opsiyonel parametreler, servis sürümünü veya kapsamını belirtir (ör.7.4
veya-all
).
ServBay'in sunduğu servbayctl
yardım bilgisinde desteklenen komutlar ve temel söz dizimi şu şekildedir:
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
Not: stop-all
komutu servis adı veya parametre almaz, tüm ServBay servislerini durdurur.
Desteklenen Komutların Açıklaması
Aşağıda servbayctl
ile kullanılabilen her bir komutun detaylı açıklaması ve örnekleri verilmiştir:
start
- Servisi Başlat
Belirlenen servisi başlatır. Belli bir sürüm belirtilebilir veya -all
argümanı ile yüklü tüm sürümler başlatılabilir.
bash
servbayctl start <servis> [-all|sürüm]
1
- Örnek: PHP 8.1 servisini başlatbash
servbayctl start php 8.1
1 - Örnek: Yüklü tüm PHP sürümlerini başlatbash
servbayctl start php -all
1 - Örnek: Varsayılan MySQL servisini başlatbash
servbayctl start mysql
1
stop
- Servisi Durdur
Belirlenen servisi durdurur. Belli bir sürüm belirtilebilir veya -all
parametresi ile yüklü tüm sürümler durdurulabilir.
bash
servbayctl stop <servis> [-all|sürüm]
1
- Örnek: PHP 7.4 servisini durdurbash
servbayctl stop php 7.4
1 - Örnek: Tüm yüklü MariaDB sürümlerini durdurbash
servbayctl stop mariadb -all
1 - Örnek: Redis servisini durdurbash
servbayctl stop redis
1
reload
- Servis Yapılandırmasını Yeniden Yükle
Belirli bir servisin yapılandırmasını yeniden yükler. Bu, genellikle yapılandırma dosyası değiştiğinde servisi tamamen yeniden başlatmadan değişikliklerin alınmasını sağlar. Her servis sıcak yeniden yüklemeyi desteklemeyebilir.
bash
servbayctl reload <servis> [-all|sürüm]
1
- Örnek: Caddy web sunucusunun yapılandırmasını yeniden yüklebash
servbayctl reload caddy
1 - Örnek: Yüklü tüm PHP sürümlerinin yapılandırmasını yeniden yükle (destekliyorsa)bash
servbayctl reload php -all
1
restart
- Servisi Yeniden Başlat
Belirlenen servisi yeniden başlatır. Bu işlem, önce servisi durdurup ardından yeniden başlatmaya eşdeğerdir.
bash
servbayctl restart <servis> [-all|sürüm]
1
- Örnek: PostgreSQL veritabanını yeniden başlatbash
servbayctl restart pgsql
1 - Örnek: Yüklü tüm Redis sürümlerini yeniden başlat (birden fazla sürüm yüklüyse)bash
servbayctl restart redis -all
1
kill
- Servis Sürecini Zorla Sonlandır
Belirlenen servis sürecini zorla sonlandırır. Bu işlem daha sert bir durdurma yöntemidir ve dikkatli kullanılmalıdır; özellikle veritabanı servislerinde veri kaybına veya bozulmasına yol açabilir. Servis normal şekilde durdurulamıyorsa başvurulur.
bash
servbayctl kill <servis> [-all|sürüm]
1
- Örnek: PHP 7.4 servis sürecini zorla sonlandırbash
servbayctl kill php 7.4
1 - Örnek: Tüm Memcached servis süreçlerini zorla bitirbash
servbayctl kill memcached -all
1
status
- Servis Durumunu Görüntüle
Belirli bir servisin şu anki çalışma durumunu (çalışıyor mu, durmuş mu) gösterir.
bash
servbayctl status <servis> [-all|sürüm]
1
- Örnek: Caddy servisinin durumunu görüntülebash
servbayctl status caddy
1 - Örnek: Yüklü tüm MySQL sürümlerinin durumunu kontrol etbash
servbayctl status mysql -all
1
stop-all
- Tüm ServBay Servislerini Durdur
ServBay'in yönettiği tüm arka plan servislerini durdurur. Bu komut genel bir işlemdir, servis adı veya sürüm belirtilmez.
bash
servbayctl stop-all
1
- Örnek: Tüm ServBay arka plan servislerini durdurbash
servbayctl stop-all
1
Desteklenen Servisler Listesi
servbayctl
ile doğrudan yönetilebilen arka plan servisleri:
php
: Farklı PHP-FPM sürümlerini yönetir.mariadb
: MariaDB veritabanı servisini yönetir.mysql
: MySQL veritabanı servisini yönetir.postgresql
: PostgreSQL veritabanı servisini yönetir.redis
: Redis önbellek/veritabanı servisini yönetir.memcached
: Memcached önbellek servisini yönetir.caddy
: Caddy web sunucusunu yönetir.nginx
: Nginx web sunucusunu yönetir.apache
: Apache HTTP sunucusunu yönetir.dnsmasq
: ServBay’in yerleşik DNS servisini yönetir.mongodb
: MongoDB veritabanı servisini yönetir.rabbitmq
: RabbitMQ mesaj kuyruğu servisini yönetir.cloudflared
: Cloudflare Tunnel servisini yönetir (kurulu ve yapılandırılmışsa).frpc
: Fatedier/frp istemci servisini yönetir (kurulu ve yapılandırılmışsa).mailpit
: Mailpit e-posta yakalama servisini yönetir.web
: Web servislerini yönetir (kesin kapsam kullanım senaryonuza göre netleşebilir, ör. etkin web sunucu veya ServBay ile ilişkili web arayüzü).ollama
: Ollama yerel büyük dil modeli servisini yönetir.
Dikkat: servbayctl
, Nginx ve Apache dahil birden fazla çekirdek arka plan servisini doğrudan yönetebiliyor. ServBay, Java, Python, Go, .NET, Ruby, Rust ve benzeri birçok ek yazılımı da destekler; ancak bunlar genellikle servis olarak çalıştırılmaz ve doğrudan servbayctl
ile yönetilmez. Bu tip yazılımlar terminalden manuel olarak veya kendi özel yönetim yolları ile çalıştırılır. servbayctl
, özellikle yukarıdaki listede yer alan ana arka plan süreçlerinin yönetimine odaklanır.
Sık Kullanılan Senaryo Örnekleri
Aşağıda servbayctl
'nin olası kullanım senaryolarından bazılarını bulabilirsiniz:
PHP versiyonunu hızla değiştirme ve test etme:
bashservbayctl stop php -all servbayctl start php 8.2
1
2Yapılandırma değişikliği sonrası veritabanı servisini yeniden başlatma:
bash# Diyelim ki my.cnf ya da my.ini dosyanızda değişiklik yaptınız servbayctl restart mysql
1
2Tüm servislerin kapalı olup olmadığını kontrol etme (örneğin sistem kapanmadan veya ServBay güncellemesinden önce):
bashservbayctl stop-all
1Web sunucusunun çalışıp çalışmadığını kontrol etme:
bashservbayctl status caddy
1Geliştirme ortamını otomasyon scripti ile başlatma:
bash#!/bin/bash echo "Tüm ServBay servisleri durduruluyor..." servbayctl stop-all echo "Gerekli servisler başlatılıyor..." servbayctl start php 8.1 servbayctl start mysql servbayctl start caddy servbayctl start redis echo "ServBay servisleri başlatıldı."
1
2
3
4
5
6
7
8
9
10
11
12
Dikkat Edilecekler ve İpuçları
- PATH'e ekleyin: Komutları daha rahat yazmak için
servbayctl
bulunan klasörü PATH'e eklemeniz tavsiye edilir. kill
komutunu dikkatlice kullanın: Bu komut, servisi anında sonlandırır ve kaydedilmemiş verilerin veya servis durumlarının kaybına yol açabilir. Normal şartlardastop
veyarestart
kullanmanız daha güvenlidir.stop-all
genel bir işlemdir: Tüm ServBay servislerini durdurur; gerçekten bunu yapmak istediğinizden emin olun.- Sürüm Parametreleri: Sürüm belirtirken, ServBay'de bu sürümün kurulu ve desteklenen bir sürüm olduğundan emin olun. Yüklü sürümleri ServBay GUI üzerinden görebilirsiniz.
- Hata Durumları: Eğer
servbayctl
komutları başarısız olursa, terminalde hata mesajı alınır. Mesajı inceleyin ya da daha fazla bilgi için ServBay'in kurulu dizinindekilogs
klasörüne bakın. - GUI ve CLI'nin birlikte kullanımı:
servbayctl
, GUI'yi tamamlayan bir araçtır. Daha kapsamlı yapılandırma veya genel görünüm gerektiren durumlarda GUI daha uygun olabilir.
Sıkça Sorulan Sorular (SSS)
S: servbayctl
komutunu çalıştırdığımda 'command not found' hatası alıyorum, ne yapmalıyım?
C: Büyük olasılıkla /Applications/ServBay/script
dizini sisteminizin PATH ortam değişkenine eklenmemiştir. “Ön Koşullar” bölümündeki adımları takip ederek ilgili dizini PATH'e ekleyebilirsiniz.
S: servbayctl start <servis>
komutu ile servisi başlattığım halde servis çalışmıyor, nasıl çözebilirim?
C:
servbayctl status <servis>
ile servis durumunu tekrar kontrol edin.- ServBay’in kurulu olduğu dizindeki
logs
klasöründe, ilgili servisin hata loglarını inceleyin; başlatma hatasının nedeni burada genellikle yazılı olur. - Aynı servisi ServBay GUI'dan başlatmayı deneyin; GUI daha açıklayıcı hata mesajları verebilir.
- Servis yapılandırma dosyalarını kontrol edin, bir hata olabilir.
S: -all
parametresi tüm servislerde geçerli midir?
C: -all
özellikle birden fazla sürüm kurulabilen servisler (örneğin PHP için) geçerlidir. Çoğu veritabanı (MySQL, PostgreSQL vb.) ve web sunucuları (Caddy) için genellikle tek bir örnek çalışır, bu yüzden -all
kullanımı ile normal servis adı belirtmek aynı etkiyi gösterir; açıkça belirtmek için sadece servis adını kullanmak yeterlidir. Redis ya da Memcached gibi birden fazla portta farklı örnekler çalıştıran servislerde -all
, kurulu ve çalışan tüm örnekleri kontrol edebilir (kesin davranış, ServBay’in iç işleyişine bağlıdır).
Özet
servbayctl
, ServBay'in geliştiricilere sunduğu, yerel geliştirme ortamı servislerini yönetmede büyük esneklik ve verimlilik sağlayan güçlü bir komut satırı arayüzüdür. start
, stop
, reload
, restart
, kill
, status
, stop-all
gibi temel komutları ve version
ile -all
parametrelerinin nasıl kullanılacağını öğrenerek; PHP, MySQL, MariaDB, PostgreSQL, MongoDB, Redis, Memcached, Caddy gibi çeşitli servisleri terminal üzerinden kolayca yönetebilir, iş akışınızı otomatikleştirerek geliştirme deneyiminizi iyileştirebilirsiniz.