انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: overboy در 28 بهمن 1392، 08:48 بظ
-
سلام پیشاپیش از راهنماییتون ممنونم می خواستم بدونم چطور میشه سیگنال های مختلف رو در حین اجرای برنامه به bash فرستاد ؟
مثلا من فقط ctrl + c رو میدونم که crash میکنه و ctrl + z رو میدونم که stop میکنه بقیه سیگنال ها آیا کلید های
ترکیبی پیش فرض ندارند ؟! و اگه ندارند چطور میشه اونها رو وارد کرد ؟
ممنونم
-
از دستور kill برای ارسال سیگنال به برنامه های دیگه استفاده می شه .
دستور
kill -l
لیست سیگنالهای موجود توی سیستم رو نشون می ده . عدد نمایش داده شده کنار هر سیگنال شماره سیگنال مربوطه است.
ترکیب CTRL+C سیگنال شماره 2 یا همون SIGINT هست که به برنامه سیگنال گیرنده اینتراپت می فرسته
و معادل کد زیره :
kill -2 process_id
به طور کلی سیگنال 15 سیگنال پیش فرض دستور kill هست .
کاربرد کلی دستور :
kill -SIGNAL_NUMBER PROCESSID
-
این جا چند تا سیگنال رو نام برده
http://30li.org/bash/commands/kill
-
دوست من با ترکیبی که گفتی برنامه کرش نمیکنه
سیگنال دو میفرسته
همون جور که دوستمون گفتن با kill -L میتونی لیست سیگنال ها رو ببینی و توی اسکریپت با trap میتونی خودت سیگنال هات رو هندل کنی
-
از دستور killall هم میتوانید استفاده کنید که آسونتره،همچنین ترمینال میزکار KDE به نام Konsole به صورت گرافیکی سیگنالهایی را در تب Edit در Main menu ی خود برای ارسال به برنامه در حال اجرا در اون صفحه از ترمینال دارد.