همین طور که میبینید دستور اجرا شده با استفاده از & در background اجرا میشه اما بلافاصله بعد از اجرا در خط بعد بصورت خودکار یه دستور دیگه در foreground اجرا میشه !!!!!
چرا این اتفاق میافته؟
سلام دوست عزیز
به شکل زیر تست کنید
nohup php artisan schedule:run > /dev/null2>&1 &
محمد گازری۰۶ تیر ۱۴۰۱، ۱۵:۲۸
مرسی بابت راهنماییتون آقای گازری
البته من بیشتر دوست داشتم دلیل این موضوع رو متوجه بشم اینکه چرا دستور بصورت کامل به background منقل نشد و یه بخشی از دستور بصورت خودکار روی foreground داره اجرا میشه
ali khosravi۰۶ تیر ۱۴۰۱، ۱۵:۳۳
چون بستگی به نوع خروجه داره که لاراول برای این مورد درنظر گرفته که داخل foreground نمایش داده بشه
موفق باشید ?
محمد گازری۰۶ تیر ۱۴۰۱، ۱۵:۴۰
مرسی بابت پاسختون اما باز هم قانع کننده نبود
ما دو حالت داریم یا دستور بصورت پیشفرض تو foreground اجرا میشه یا با استفاده از & میره به background
سوال من اینه چرا اینجا بخشی از دستور داره تو background و بخش دیگه تو foreground اجرا میشه
اینکه خروجی دستور چی باشه که نباید تاثیری بر این موضوع داشته باشه
خیلی از دستورات دیگه هم هستن که مثلا پیغامی رو چاپ میکنن و یا اتفاقات دیگه که همه با & میرن به background اما اینجا به اتفاق دیگه داره میافته
ali khosravi۰۶ تیر ۱۴۰۱، ۲۰:۲۹
علی عزیز ما مدلهای مختلف خروجی (stdout, stderror) در ترمینال داریم که هنوز آموزشش داده نشده
این مورد هم حتی برای ابزارهایی مثل curl هم پیش میاد (دلیل curl اطلاعات diagnostic هست) که با ریدایرکت مدلهای مختلف stdouputها حل میشه
در تصویر زیر با اینکه ما خروجی رو ریدایرکت کردیم باز اطلاعاتی در ترمینال نمایش داده میشه
این جلسه میانی بصورت آزمایشی فعال و غیر فعال شده
یکم جلوتر این موارد گفته خواهد شد و اون زمان بیشتر درک خواهید کرد