انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => انجمن عمومی => نویسنده: overboy در 28 بهمن 1392، 08:48 ب‌ظ

عنوان: فرستادن سیگنال در حین اجرای برنامه در bash
ارسال شده توسط: overboy در 28 بهمن 1392، 08:48 ب‌ظ
سلام پیشاپیش از راهنماییتون ممنونم می خواستم بدونم چطور میشه سیگنال های مختلف رو در حین اجرای برنامه به bash فرستاد ؟
مثلا من فقط ctrl + c رو میدونم که crash میکنه و ctrl + z رو میدونم که stop میکنه بقیه سیگنال ها آیا کلید های
ترکیبی پیش فرض ندارند ؟! و اگه ندارند چطور میشه اونها رو وارد کرد ؟
ممنونم
عنوان: پاسخ : فرستادن سیگنال در حین اجرای برنامه در bash
ارسال شده توسط: محسن صفری در 28 بهمن 1392، 09:31 ب‌ظ
از دستور kill برای ارسال سیگنال به برنامه های دیگه استفاده می شه .

دستور
kill -lلیست سیگنالهای موجود توی سیستم رو نشون می ده . عدد نمایش داده شده کنار هر سیگنال شماره سیگنال مربوطه است.

ترکیب CTRL+C سیگنال شماره 2 یا همون SIGINT هست که به برنامه سیگنال گیرنده اینتراپت می فرسته

 و معادل کد زیره :

kill -2 process_id
به طور کلی سیگنال  15 سیگنال پیش فرض دستور kill هست .

کاربرد کلی دستور :

kill -SIGNAL_NUMBER PROCESSID
عنوان: پاسخ : فرستادن سیگنال در حین اجرای برنامه در bash
ارسال شده توسط: ali.abry در 28 بهمن 1392، 09:41 ب‌ظ
این جا چند تا سیگنال رو نام برده
http://30li.org/bash/commands/kill
عنوان: پاسخ : فرستادن سیگنال در حین اجرای برنامه در bash
ارسال شده توسط: mhch در 29 بهمن 1392، 07:27 ب‌ظ
دوست من با ترکیبی که گفتی برنامه کرش نمیکنه
سیگنال دو میفرسته
همون جور که دوستمون گفتن با kill -L میتونی لیست سیگنال ها رو ببینی و توی اسکریپت با trap میتونی خودت سیگنال هات رو هندل کنی
عنوان: پاسخ : فرستادن سیگنال در حین اجرای برنامه در bash
ارسال شده توسط: سوزه در 29 بهمن 1392، 07:35 ب‌ظ
از دستور killall هم میتوانید استفاده کنید که آسونتره،همچنین ترمینال میزکار KDE به نام Konsole به صورت گرافیکی سیگنالهایی را در تب Edit در Main menu ی خود برای ارسال به برنامه در حال اجرا در اون صفحه از ترمینال دارد.