Post 9xyo4XupQwRhprGAfw by ssmns@mastodon.host
 (DIR) More posts by ssmns@mastodon.host
 (DIR) Post #9xuy0RPRu3URPMQLQm by ssmns@mastodon.host
       2020-08-08T16:22:36Z
       
       0 likes, 1 repeats
       
       کسی هست به من یه دستی برسونه ؟ #python#process صورت مساله :من یک فایل sh دارم که توی اون قرار هست طی چندین مرحله ابزار های مختلفی اجرا بشن و ... حالا من دارم یه وبسرویس می نویسم که توی یک API اون داره این فایل رو اجرا می کنه .چیزی که لازم دارم اینه که چطور میتونم pid پروسس های که با اون sh  ایجاد  میشه رو توی یه بانک ذخیره کنم و بتونم در صورت لزوم kill کنم . اگه کسی بتونه کمک کنه ممنون می شم. من خودم از subprocess.popen استفاده کردم و فقط pid اصلی رو بدست اوردم و مشکل اینجاست با kill کردن این هنوز کد درون shell داره ادامه می ده
       
 (DIR) Post #9xv9iM54AwYd7Q24hM by Mrtzzz@mastodon.social
       2020-08-08T18:27:52Z
       
       0 likes, 0 repeats
       
       @ssmns از pool داری استفاده میکنی درسته؟ بهتره از پروسه ی پیچیده تر threading استفاده کنی.  ضمنا اینکه بهتره در این مورد الگوریتم کلیتو خیلی به دقت بررسی کنی چون مثلا تو multiprocessing  هر پروسس حافظه ی جداگانه ی خودش رو داره و share کردن object بین پروسس ها بسیار دشوار میشه. در thread این مشکل وجود ندارد اما thread ها از فضای حافظه ی مشترک استفاده میکنند . و با lock global interpreter میتونی یه thread رو قفل یا استاپ کنی.
       
 (DIR) Post #9xv9iMdS763yq47XIO by ssmns@mastodon.host
       2020-08-08T18:33:48Z
       
       0 likes, 1 repeats
       
       @Mrtzzz  در حقیقت اون فایل sh من mpirun  توش داره . یعنی دو سه تا مرحله از دو سه تا نرم افزار دیگه رو داره اجرا میکنه . یعینمن multiprocessing  یا با thread ننوشتم .
       
 (DIR) Post #9xydm7Tbzlk95A6WtU by danialbehzadi@persadon.com
       2020-08-08T19:16:19Z
       
       0 likes, 0 repeats
       
       @ssmns من این‌جوری درستش کردم: https://gitlab.com/tractor-team/tractor/-/commit/c2f6ce01e6b695e9c37edef1a372e39c3bf877e3
       
 (DIR) Post #9xydmA0IbD4uv7Pf7Y by ssmns@mastodon.host
       2020-08-10T10:54:44Z
       
       0 likes, 1 repeats
       
       @danialbehzadi خیلی ممنون کلا رفتم با این کتابخونه ای که توی کد بود و کارکردی کار میکنم و همه چیز به نظر منطقی میاد . حالا یه سوال من میخوام دستور زیر رو اجرا کنم اگه وقت داری بگو چطور اعمال کنم که کار کنه :rm -rf log*اینو بصورت زیر وارد میکنم ولی کار نمیکنه :psutil.Popen(['rm', '-rf' ,'log*'],stdout=logfile) ولی بصورت زیر کار میکنه :psutil.Popen(['rm', '-rf' ,'log.black'],stdout=logfile)
       
 (DIR) Post #9xyo4WxH0Mo6r9Obqa by danialbehzadi@persadon.com
       2020-08-10T11:25:36Z
       
       0 likes, 0 repeats
       
       @ssmns چرا از os.remove استفاده نمی‌کنی؟
       
 (DIR) Post #9xyo4XupQwRhprGAfw by ssmns@mastodon.host
       2020-08-10T12:50:07Z
       
       0 likes, 1 repeats
       
       @danialbehzadi برای حذف فایل ها منظورت هست ؟ راستش چون من یه فایل sh  داشتم خط به خط فانکشنش کردم🤦تا الان که گفتی اصلا به این فکر نکردم  .راهکار خوبی هست
       
 (DIR) Post #9y0vYNdNJQdgdABmWO by ssmns@mastodon.host
       2020-08-11T13:23:25Z
       
       0 likes, 1 repeats
       
       @danialbehzadi دانیال جان فقط یه مشکل دیگه توی کارم هست ممنون میشم بتونی راهنمایی بدی . من اللن یه تابع async نوشتم و‌ گام‌به گام میره جلو و اطلاعات میره توی بانک مشکلم اینه من میخوام  قبل از اجرای این تابع که با asyncio.run اجرا میشه یه return  داشته باشم .‌یعنی طرف مقایل متوجه بشه اجرا شروع شده .‌توی فلسک هم هستم