PDA

View Full Version : چگونگی اجرای یک اسکریپت PHP در پس زمینه و متوقف کردن آن از طریق یک اسکریپت PHP دیگر؟



2undercover
یک شنبه 09 فروردین 1394, 14:07 عصر
سلام و خسته نباشید.

خوب عنوان به نظر میاد یکم گنگ هست، پس توضیح بیشتری میدم.

قرار یک سرور سوکت که با استفاده از PHP نوشته شده با دستور مدیر سایت اجرا بشه (از طریق داشبورد مدیریت سایت)، که خوب مشکل خاصی نیست و میشه به راحتی با استفاده از توابعی مثل exec و shell_exec و غیره اون اسکریپت که سرور رو اجرا می کنه اجرا کرد. فرضا به شکل زیر:



shell_exec('php path/to/socket_server.php');


خوب حالا مشکل این جاست که بعد یک مدت دیگه نیازی نیست تا سرور در حال اجرا باشه و نیاز هست که متوقف بشه که این کار هم باید از طریق همون داشبورد مدیریت که سرور راه اندازی شده انجام بشه؟!

یک بررسی هایی که کردم (توی ویندوز البته) میشه با استفاده از یک سری دستور ها یک Process خاص که در اینجا php.exe هست رو متوقف کرد. باز یک سوال پیش میاد که این باعث تداخل نمیشه؟!

و با توجه به این که سرور های اصلی روی لینوکس اجرا میشن لینوکس چنین قابلیتی رو داره یا نه؟!

با تشکر.

2undercover
سه شنبه 11 فروردین 1394, 21:50 عصر
مجبور شدم تا پیام بدم چون تاپیک رفته توی صفحه 3. کسی نظری نداره؟!

n0o0b_sina
سه شنبه 11 فروردین 1394, 22:07 عصر
با این مشکلتون حل نشد؟!
http://php.net/manual/en/function.socket-shutdown.php
میتونید از طریق php یه پیام به سرور سوکت بفرستید اونورم تعین کنید که اگه این پیام اومد با تابع بالایی سوکت بسته شه.

2undercover
سه شنبه 11 فروردین 1394, 22:43 عصر
میتونید از طریق php یه پیام به سرور سوکت بفرستید اونورم تعین کنید که اگه این پیام اومد با تابع بالایی سوکت بسته شه.

ممنون. دقیقا از همین ایده برای یک قسمت دیگه از برنامه استفاده کرده بودم، نمی دونم چرا برای این قسمت این به ذهنم نرسید؟! :گیج: میشه یک کد ایجاد کرد و توی پایگاه داده ذخیره کرد و برای متوقف کردن سرور یک پیام به سرور فرستاد و توی سرور سوکت بررسی کرد که این کد همون کد توی پایگاه داده هست یا نه اگر بود از برنامه خارج بشه.