পটভূমি প্রক্রিয়া শুরু করার সময় শেল প্রক্রিয়া সম্পর্কিত তথ্য কীভাবে গোপন করবেন?


19
[USER@SERVER ~] sleep 3 &
[1] 5232
[USER@SERVER ~] 
[1]+  Done                    sleep 3
[USER@SERVER ~] 

এই দুটি বার্তা আমি কীভাবে দেব / দেব / নাল করব ?:

[1] 5232
[1]+  Done                    sleep 3

PS: সুতরাং আমি প্রক্রিয়া আউটপুট প্রয়োজন, কিন্তু উল্লিখিত দুটি লাইন না!


আপনি কেবল তখনই লাইনগুলি পাবেন যখন আপনি এটি ইন্টারেক্টিভভাবে চালাবেন। উদাহরণস্বরূপ, আপনি যদি এটি কোনও স্ক্রিপ্ট থেকে চালান না।
ডারোবার্ট

উত্তর:


24

এটি প্রোগ্রাম আউটপুট নয়, এটি কিছু দরকারী শেল তথ্য।

যাইহোক, সেগুলি সাব-শেল এবং আউটপুট পুনঃনির্দেশ ব্যবহার করে আড়াল করা যায়

( sleep 3 & ) > /dev/null 2>&1

2
"2> / দেব / নাল" ভাল জিনিস, প্রক্রিয়াটি থেকে আমার আউটপুটটি দরকার
ল্যান্সবায়নেস

@ ল্যান্স বেইনস প্রক্রিয়াটি স্ট্ড্রারে কিছু লিখতেও পারে।
ক্রিস ডাউন

2
দুর্ভাগ্য যে এটি this দিয়ে পিডের পুনরুদ্ধারকে পরাস্ত করে!
মোছা

3

ব্যাশ বা zsh এ, আপনি শেলটিটিকে কাজের disown %1কথা ভুলে যেতে বলার জন্য কল করতে পারেন । তারপরে শেলটি সেই কাজ সম্পর্কে কোনও বার্তা প্রিন্ট করবে না এবং আপনি যখন চালাবেন jobsবা কখন এটিতে সাইনআপ প্রেরণ করবেন তখন তা এটি প্রদর্শন করবে না। Zsh এ, এর &!পরিবর্তে কাজ শুরু করা তাৎক্ষণিকভাবে &কল disownকরার সমান is


1

@ গিলসে মন্তব্য করতে পারেন (এখনও) তবে মনে হচ্ছে এটি বাশেও & disownকাজ করে:

sleep 3 & disown

এটি বাশ v.4.1.2-এ কাজ করছে বলে মনে হচ্ছে না
মাগুরা

1

চেষ্টা করুন:

user@host:~$ read < <( sleep 10 & echo $! )
user@host:~$ echo $REPLY
28677

এবং আপনি আউটপুট এবং পিআইডি উভয়ই লুকিয়ে রেখেছেন । মনে রাখবেন যে আপনি এখনও ID REPLY থেকে পিআইডি পুনরুদ্ধার করতে পারেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.