جدول محتوایی
Systemd یک مدیر سیستم و خدمات برای سیستم عامل های لینوکس است. به طور گسترده ای برای مدیریت خدمات، رابط های شبکه و سایر منابع سیستم در سرورهای مبتنی بر لینوکس استفاده می شود. در این آموزش، نحوه اجرای یک اسکریپت PHP به عنوان یک سرویس systemd در لینوکس را توضیح خواهیم داد.
خرید سرور مجازی میکروتیک ایران
برای ایجاد یک سرویس systemd برای یک اسکریپت PHP، باید یک فایل واحد ایجاد کنید که پیکربندی سرویس در آن تعریف شود. فایل واحد باید در دایرکتوری /etc/systemd/system ذخیره شود و پسوند فایل .service داشته باشد. در اینجا مراحل ایجاد یک سرویس systemd برای اسکریپت PHP آمده است:
مرحله 1 : ایجاد اسکریپت PHP
ابتدا اسکریپت PHP را ایجاد کنید که می خواهید به عنوان یک سرویس systemd اجرا شود. به عنوان مثال، بیایید یک اسکریپت به نام myscript.php ایجاد کنیم که “Hello, world!” را هنگام اجرا چاپ کند. برای شروع باید با یک ویرایشگر مانند nano فایل php را بسازید و ویرایش کنید.
با استفاده از دستور زیر در محل دلخواه یک فایل ایجاد کنید:
nano /var/www/html/index.php
پس از اینکه فایل ساخته شد و وارد ویرایشگر شدید، دستور زیر را در آن بنویسید :
<?php echo "Hello world!"; ?>
حالا برای سیو شد تغییرات، کلید های ترکیبی ctrl+x سپس y و در نهایت Enter را بزنید تا تغییرات اعمال شود.
مرحله 2 : ایجاد فایل Systemd Unit
سپس فایل systemd unit را برای اسکریپت PHP ایجاد کنید. این فایل پیکربندی سرویس، مانند نام، توضیحات، و نحوه شروع و توقف آن را مشخص می کند. فایلی به نام myscript.service در دایرکتوری “/etc/systemd/system” ایجاد کنید:
sudo nano /etc/systemd/system/myscript.service
محتوای زیر را به فایل اضافه کنید:
[Unit] Description=My PHP Script [Service] Type=simple ExecStart=/usr/bin/php /var/www/html/index.php Restart=always [Install] WantedBy=multi-user.target
این فایل به systemd می گوید که سرویسی به نام index ایجاد کند که اسکریپت index.php را با استفاده از مفسر PHP اجرا می کند. همچنین مشخص می کند که در صورت عدم موفقیت سرویس به هر دلیلی باید به طور خودکار راه اندازی مجدد شود.
مرحله 3 : پیکربندی مجدد Systemd
هنگامی که فایل واحد را ایجاد کردید، باید پیکربندی systemd را دوباره بارگیری کنید تا از سرویس جدید مطلع و آپدیت شود. با اجرای دستور زیر می توانید این کار را انجام دهید:
sudo systemctl daemon-reload
مرحله 4 : استارت و فعالسازی سرویس
در نهایت، می توانید با اجرای دستور زیر سرویس index را راه اندازی کنید:
sudo systemctl start myscript
همچنین می توانید با اجرای دستور زیر، سرویس را فعال کنید تا به طور خودکار در زمان بوت هم استارت شود:
sudo systemctl enable myscript
برای بررسی وضعیت سرویس می توانید دستور زیر را اجرا کنید:
sudo systemctl status myscript
این دستور به شما نشان می دهد که آیا سرویس در حال اجرا است یا خیر.
نتیجه
در این آموزش، نحوه ایجاد یک سرویس systemd برای اسکریپت PHP در لینوکس را به شما نشان دادیم. با دنبال کردن این مراحل، میتوانید یک اسکریپت PHP را بهعنوان یک سرویس systemd اجرا کنید و مطمئن شوید که در زمان راهاندازی بهطور خودکار شروع میشود، در صورت خرابی دوباره راهاندازی میشود و به راحتی با دستور systemctl قابل مدیریت است. این میتواند برای اجرای اسکریپتهای PHP که نیاز به اجرای مداوم در پسزمینه دارند، مانند دیمونها، cron job ها یا فرآیندهای طولانیمدت مفید باشد.