Ubuntu üzerinde artisan servisi oluşturmak

Kullandığım linux sürümü 18.04 fakat aynı işlemleri centos 7 üzerinde de uyguladım.

ssh bağlantınız veya ubuntu kurulu local pc niz üzerinde terminal üzerinden alttaki komutları girerek işlemlemlere devam edebilirsiniz.

cd /etc/systemd/system/
sudo touch php-queue.service
sudo nano php-queue.service

açılan ekrana alttaki kodları girip ctrl+x tuşları ile çıkış yapın, sizden onay isteyecek y tuşuna basıp enter ile devam edebilirsiniz.

[Unit]
Description=PHP Redis Queue Ticket and Result Worker
After=network.target network-online.target redis.service
Wants=network-online.target
Requires=redis.service

[Service]
Type=forking
User=root
Group=root
ExecStart=/var/www/html/run_services start
ExecStop=/var/www/html/run_services stop
Restart=on-failure
RestartSec=5
# see: https://pagure.io/packaging-committee/issue/191
StartLimitInterval=120s
StartLimitBurst=10

[Install]
WantedBy=multi-user.target 

note redis ile işlem yapamayacaksanız yukardaki kod içerisinden "Requires=redis.service" alanını kaldırın ve After satırını "After=network.target network-online.target" olarak düzenleyin

sudo chmod +x php-queue.service

Yukardaki komut ile çalıştırılabilir bir dosya olarak işaretleyelim

cd /var/www/html

yukardaki dizin sizin web sitenizin root dizini olmalı artisan dosyanızın bulunduğu dizin

sudo touch run_services
sudo nano run_services

açılan ekrana alttaki kodları girip ctrl+x tuşları ile çıkış yapın, sizden onay isteyecek y tuşuna basıp enter ile devam edebilirsiniz.

#!/usr/bin/env bash  

PROJ_DIR=/var/www/html
# export FEED_PROD=no   # for INFO level logging make yes, otherwise no

start() {
  echo "Starting services ...."
  cd $PROJ_DIR
  php artisan queue:work --queue=result,ticket,purgeresult & 
  echo $! > /tmp/php-artisan-queue-pid 
  # more commands ...
}

stop() { 
  echo "Stopping services ...."  
  kill $(cat /tmp/php-artisan-queue-pid)
  rm /tmp/php-artisan-queue-pid
}

case $1 in
  start|stop) "$1" ;;
esac
sudo chmod +x run_services

dosya oluşturma ve kod ekleme alanı bu kadar. Şimdi servisi aktif etmek ve bir kaç ayrıntımız var ilk olarak servisi aktif olarak işaretlemek için

sudo systemctl enable php-queue

işletim sisteminde bir servis eklediğimizde veya bir servis de değişiklik yaptığımız da reload işlemi yapmamız gerekir bu komut ise şu şekilde:

sudo systemctl daemon-reload

Artık servisi start ve stop gibi işlemlerimizi yapabiliriz

start komutu:

sudo systemctl start php-queue

stop komutu:

sudo systemctl stop php-queue

start dedikten sonra service listesinde yeni servisimizi görmek isterseniz:

ps -aux | grep php-queue

servis için logları görmek isterseniz:

journalctl -e -u php-queue.service 

yukardaki kod içerisinde page up veya page down tuşları ile gezinebilirsiniz. yalnız log kapattığınız da servisinizi kontrol edin çalışmıyor olabilir tekrar start etmeniz gerekebilir.

Umarım işinizi görür

Burda ara