• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
زمان اجرا تابع exec
#1
سلام

من از تابع exec برای ارسال یه کامند به سرور و اجرای اون استفاده میکنم.

مشکل اینه که بعضی وقت ها اجرای این کامند زمان زیادی میبره . اگر کامند رو با اس اس اچ اجرا کنم مثلا ۱۵ دقیقه طول میکشه که نتیجه مورد نظر به دست بیاد ( یه سری عملایت روی فایل ) ولی وقتی توی پی اچ پی از تابع exec برای اجرا اون کامند استفاده میکنم در زمان مثلا ۸ دقیقه اجرا کامند متوقف میشه ! خروجی اینه که با موفقیت انجام شد ولی اون پروسه خاص ناقص میمونه.

راه حلی برای این مشکل به ذهنتون میرسه؟
  پاسخ
تشکر شده توسط :
#2
منم با exec و فایل مشکلاتی داشتم. اینجارو ببینی بد نی
http://kevin.vanzonneveld.net/techblog/a..._with_php/
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط : voltan
#3
یوشا چه ربطی به SSH داره؟

برای اینکه باید منتظر بمونه تا پروسستون تموم بشه و بعد ریزالت رو برگردونه. بهترین راه حل اینه که پروسس رو بندازین توی backgrround . مثلا کامندی که می خوایین ارسال کنین اینه

کد:
wget http://forum.iranphp.org

این رو باید به این صورت بنویسین

کد:
nohup wget http://forum.iranphp.org > res.txt &

دیگه برنامه منتظر اتمام کار نمیشه و به کار خودش ادامه میده
چیزی هم که بر می گردونه شماره پروسستون هست که می تونین چک کنین داخل لیست پروسس ها ببینید تموم شده یا نه.
نتیجه خروجی هم داخل res.txt میریزه. اگر نتیجه رو لازم ندارین می تونین به جای res.php توی لینوکس /dev/null بزارین
  پاسخ
تشکر شده توسط : voltan
#4
نقل قول:اگر کامند رو با اس اس اچ اجرا کنم مثلا ۱۵ دقیقه طول میکشه که نتیجه مورد نظر به دست بیاد
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط : voltan
#5
خیلی ممنون از راهنمایی. اجازه بدید این دو مورد رو یه تست بکنم نتیجه رو بهتون میگم

ممنون
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان