بایگانی

Archive for the ‘خط فرمان’ Category

خط فرمان – nohup


terminal

گاهی اوقات پیش میاد که می‌خواهید در خط فرمان یک دستور زمان‌بری  (مثلا ۴، ۵ ساعت) رو اجرا کنید. اگر به صورت عادی دستور را اجرا کنید وقتی که شل را ببندید سیگنالی به نام SIGHUP  به پروسه مربوطه فرستاده می‌شود که وقتی هر پروسه‌ای این سیگنال را دریافت کند، آن پروسه Stop می‌شود.

برای این‌که این اتفاق نیافتد چندین راه وجود دارد، که به نظر من بهترین راه، نخستین است:

۱- استفاده از دستور nohup: این دستور سیگنال HUP را نادیده می‌گیرد، بنابراین با بسته شدن شل، همچنان دستور (Job) شما اجرا می‌شود. این دستور در بسته GNU core utils وجود داره.

$ nohup your_command

۲- استفاده ازat: این دستور کار اصلیش زمان‌بندی Jobهای مختلفه. وقتی با این دستور Job مورد نظر خود را اجرا کنید به دلیل این‌که در محیط at دستور شما قرار می‌گیرد، دیگر با بستن شل اتفاقی نمی‌افتد.

$ echo command|at now

۳- استفاده از دستور start-stop-daemon: این دستور در توزیع‌های برپایه دبیان وجود داره و کارش اینه که یک Job رو تبدیل به daemon می‌کنه. من با این دستور کار نکردم، کسی اگه کار کرده در دیدگاه‌ها بگه.

Advertisements
%d وب‌نوشت‌نویس این را دوست دارند: