میخواستم بدونم انواع دستورات فورک در لینوکس چه هستند؟چطوری میشه اجرا گرفت؟ میشه راهنمایی کنید
میخواستم بدونم انواع دستورات فورک در لینوکس چه هستند؟چطوری میشه اجرا گرفت؟ میشه راهنمایی کنید
برای ساخت یه پروسه ی جدید در یونیکس (و البته شبه یونیکس!) از fork استفاده می شه یا اصطلاحان می گن فلان پروسه fork میشه. موقعی که fork انجام می شه یه پروسه ی جدید ساخته می شه که در واقع کپی از پروسه ای هست که در اون fork صدا شده. این پروسه جدید (child) خواص زیادی رو از پروسه پروسه ی قبلی (parent) به ارث می بره مثل uid و stdin و stdout و env variables. بعد از اجرای پروسه ی child کنترل برنامه به پروسه ی parent بر می گرده.
مثال می تونه این باشه که شما در پوسته (shell) سیستم عامل مثلا دستورman forkرو اجرا کنید. پروسه ی child برای echo به وجود می یاد و بعد از خاتمه دوباره پوسته فعال می شه.
این که پرسیدی انواع fork باید بگم fork همین مفهوم را داره و نوع دیگه ای از fork نمی شناسم. (مثلا exec عملکرد متفاوتی داره و fork نیست) در اسکریپت نویسی Bash هم دستوراتی که درون {} هستند یک subshell ایجاد می کنند. (یه shell جدید fork می کنن). شاید اینکه بپرسیم کجاها دقیقا fork می شه بهتر باشه.
شاید اینکه بپرسیم کجاها دقیقا fork می شه بهتر باشه.؟؟
کجا مثلا
میشه راهنمایی کنی؟
تو همون پست اول گفتم که. تقریبا هر برنامه ای (یعنی builtin نباشه) که از شل صداش کنید، با یک fork همراهه. مثلا شما تو محیط گرافیکی از یک شل فایرفاکس رو ران کنید. با بستن شل فایرفاکس هم بسته می شه چون یک child از اون شل هست. env vars شل رو داره و باقی ویژگی ها.
تو اسکریپت نویسی هم subshell با fork همراهه. subshell وقتی بوجود میاد که مثلا کدی بین {} داشته باشی. (بعضی shell ها مثل fish فاقد subshell هستند)
میشه چند تا دستور فورک در لینوکس واسم نام ببری غیر از اینا که گفتی
و اینکه چجوری میشه اجراشون گرفت؟
میخوام تخصصی روش کار کنم بررسی کنم و اینکه اجرا بگیرم