PDA

View Full Version : کرش سرور در استفاده از exec



fmehdi
شنبه 06 تیر 1388, 04:57 صبح
سلام
من برای تبدیل چند نوع فایل می خوام از exec استفاده می کنم . این برنامه در حالت کلی به خوبی کار میکنه و اگر این برنامه را به صورت مستقیم در داس اجرا کنم به صورت بی نهایت بار هیچ مشکلی پیش نخواهد امد اما هنگامی که آنرا از وب و با exec اجرا می کنم برنامه حداکثر بعد از 10 تا 20 بار باز شدن دیگه کار نمی کنه و در حقیقت سرور ( wampserver 2.0) از کار میفته مگر اینکه دوباره سرور راه اندازی بشه تا برنامه بتونه دوباره کار کنه ؟
کسی ایده ای نداره واسه حل این مشکل ؟

در ضمن برای اینکه پیش دستی کرده باشم اینا رو هم میگم :
1. برنامه روی wampserver 2.0 و روی xp و 2003 اجرا میشه .
2. جالبه که اگر برنامه کامل اجرا شده cmd.exe خودکار بسته می شه اما اگه بعد از اون چند باری که گفتم برای دفعه اخر نتونه اونکار رو انجام بده فایل cmd.exe تو process های task manager می مونه و اگر اونو دستی هم end process کنی هیچ بهبودی قائل نمیشه مگر اینکه سرور را دوباره راه اندازی کنیم تا اینکه این برنامه هم خاتمه پیدا کنه ...
3. تمام لاگ های apache و php و mysql رو چک کردم چیز بدرد بخوری پیدا نکردم یعنی اینکه همه چیز اونجا عادی هست .
وکلا تنها چیزی که غیر عادی هستش همون مورد 2 هست .

از پاسخ ها پیشاپیش تشکر می کنم !!!

__ziXet__
شنبه 06 تیر 1388, 09:54 صبح
سلام
من برای تبدیل چند نوع فایل می خوام از exec استفاده می کنم . این برنامه در حالت کلی به خوبی کار میکنه و اگر این برنامه را به صورت مستقیم در داس اجرا کنم به صورت بی نهایت بار هیچ مشکلی پیش نخواهد امد اما هنگامی که آنرا از وب و با exec اجرا می کنم برنامه حداکثر بعد از 10 تا 20 بار باز شدن دیگه کار نمی کنه و در حقیقت سرور ( wampserver 2.0) از کار میفته مگر اینکه دوباره سرور راه اندازی بشه تا برنامه بتونه دوباره کار کنه ؟
کسی ایده ای نداره واسه حل این مشکل ؟

در ضمن برای اینکه پیش دستی کرده باشم اینا رو هم میگم :
1. برنامه روی wampserver 2.0 و روی xp و 2003 اجرا میشه .
2. جالبه که اگر برنامه کامل اجرا شده cmd.exe خودکار بسته می شه اما اگه بعد از اون چند باری که گفتم برای دفعه اخر نتونه اونکار رو انجام بده فایل cmd.exe تو process های task manager می مونه و اگر اونو دستی هم end process کنی هیچ بهبودی قائل نمیشه مگر اینکه سرور را دوباره راه اندازی کنیم تا اینکه این برنامه هم خاتمه پیدا کنه ...
3. تمام لاگ های apache و php و mysql رو چک کردم چیز بدرد بخوری پیدا نکردم یعنی اینکه همه چیز اونجا عادی هست .
وکلا تنها چیزی که غیر عادی هستش همون مورد 2 هست .

از پاسخ ها پیشاپیش تشکر می کنم !!!
شما رو xampp هم تست کن

fmehdi
دوشنبه 08 تیر 1388, 16:23 عصر
روی xxamp هم تست کردم اما هنوز هم همان مشکل و داره .
پیشنهاد دیگه ای نداری ؟

__ziXet__
دوشنبه 08 تیر 1388, 16:44 عصر
روی xxamp هم تست کردم اما هنوز هم همان مشکل و داره .
پیشنهاد دیگه ای نداری ؟
اگه میتونید کدها و فایل اجرایی رو بذارید.

fmehdi
سه شنبه 09 تیر 1388, 00:39 صبح
سلام،
من برای اجرای ant که میتونی تو آدرس ant.apache.org ببینی از اون exec استفاده می کنم . اما مشکل این نیست من حتی با اجرای کد زیر هم مشکل دارم و بعد از همون 10 تا 20 بار سرور رو میترکونه :

<?php
exec("dir", $out, $res);
foreach($out as $tex) echo $tex;
?>
اما امروز به چیز جالب دست پیدا کردم. برنامه ای که من نوشتم با ای جکس هستش اگه همون فایل که تو برنامه ای جکس هستش رو به صورت مستقیم و با وارد کردن آدرسش تو مرورگر وارد کنم سرور دیگه هنگ نمیکنه و اگه کنه بالای 70 تا 100 بار . البته هنوز مطمئن نیستم چرا که برنامه کاملا دوپهلو عمل میکنه و اینا بر اساس مشاهدات محدودی بود .

اما مساله مهمتری اینجا هست . کلا اگه این سرور هنگ کرد من از کجا متوجه شم که برنامه کار نمیکنه ؟ چرا که اگه برنامه با این مورد روبرو شه فقط فقط آدرس هایی رو باز نمیکنه که داخل اونها از exec استفاده شده باشه و سایر صفحات و برنامه های دیگه بدون ریستارت سرور نیز قابل اجرا هستند ؟؟
آیا هیچ راهی هست بشه فهمید که برنامه کار نمیکنه ؟ یا اگه اون اتفاق افتاد یه ایمیل بزنه ؟

خیلی برام مهمه
اگه کسی میتونه حلش کنه، مایلم به صورت یه پروژه در مورد قیمت باهم صحبت کنیم .

در هر صورت هر راهنمایی که بتونید بکنید ممنون میشم حتی اگه در حد یه حدس باشه چون به آخر خط رسیدم ...

__ziXet__
سه شنبه 09 تیر 1388, 01:53 صبح
سلام،
من برای اجرای ant که میتونی تو آدرس ant.apache.org ببینی از اون exec استفاده می کنم . اما مشکل این نیست من حتی با اجرای کد زیر هم مشکل دارم و بعد از همون 10 تا 20 بار سرور رو میترکونه :

<?php
exec("dir", $out, $res);
foreach($out as $tex) echo $tex;
?>
اما امروز به چیز جالب دست پیدا کردم. برنامه ای که من نوشتم با ای جکس هستش اگه همون فایل که تو برنامه ای جکس هستش رو به صورت مستقیم و با وارد کردن آدرسش تو مرورگر وارد کنم سرور دیگه هنگ نمیکنه و اگه کنه بالای 70 تا 100 بار . البته هنوز مطمئن نیستم چرا که برنامه کاملا دوپهلو عمل میکنه و اینا بر اساس مشاهدات محدودی بود .

اما مساله مهمتری اینجا هست . کلا اگه این سرور هنگ کرد من از کجا متوجه شم که برنامه کار نمیکنه ؟ چرا که اگه برنامه با این مورد روبرو شه فقط فقط آدرس هایی رو باز نمیکنه که داخل اونها از exec استفاده شده باشه و سایر صفحات و برنامه های دیگه بدون ریستارت سرور نیز قابل اجرا هستند ؟؟
آیا هیچ راهی هست بشه فهمید که برنامه کار نمیکنه ؟ یا اگه اون اتفاق افتاد یه ایمیل بزنه ؟

خیلی برام مهمه
اگه کسی میتونه حلش کنه، مایلم به صورت یه پروژه در مورد قیمت باهم صحبت کنیم .

در هر صورت هر راهنمایی که بتونید بکنید ممنون میشم حتی اگه در حد یه حدس باشه چون به آخر خط رسیدم ...
واسه من که هنگ نمیکنه!
البته من نمیدونم ant چیه ولی من هر دستوری رو با exec اجرا میکنم هنگ نمیکنه!
شما ببین پروسس آپاچی چه تغییری میکنه! cpu زیاد مصرف میکنه یا رم یا...
شاید ant باگ داشته باشه

fmehdi
پنج شنبه 11 تیر 1388, 14:47 عصر
سلام
آقا دست بی درد درست شد . مشکل این بود که تو یه فایل پروسس های زیادی انجام میدادم و تعداد زیادی کوئری به دیتابیس داشتم و تیر آخر را هم همین exec میزد که سرور میترکید ولی توی تست های اولیه که exec رو حذف میکردم هنگ نمیکرد به همین دلیل این به شکم انداخته بود .

در هر صورت ممنون