এটি Ctrl+Zঅন্যান্য কমান্ডগুলিতে চাপ দেওয়ার সমতুল্য ।
এটি শেলটি স্থগিত করে এবং প্যারেন্ট শেলকে নিয়ন্ত্রণ দেয় বা যদি থাকে তবে প্রক্রিয়া করে।
উদাহরণ:
zsh$ bash
bash-4.4$ cd /
bash-4.4$ suspend
zsh: suspended (signal) bash
zsh$ fg
[1] + continued bash
bash-4.4$ pwd
/
বৈশিষ্ট্যটি সিএসএস থেকে আসে, বিএসডির শেল (যেখানে কাজের নিয়ন্ত্রণ আসে) 80 এর দশকের গোড়ার দিকে ।
এটিএন্ডটি-তে kshএটি একটি বিল্টিন ওরফে kill -s STOP $$( হ্যাঁ, উদ্ধৃতিগুলি ছাড়াই! )
আপনার ক্ষেত্রে bashসম্ভবত এটিই টার্মিনাল এমুলেটর দ্বারা সরাসরি শুরু হয়েছিল। এবং আপনার টার্মিনাল এমুলেটরটি প্রক্রিয়াটি স্থগিত হওয়ার আশা করেনি।
সেটাই bashছিল সেশন লিডার। যদি সেশন লিডার স্থগিত করা হয়, আমরা যদি পুরানো সময়ের টার্মিনালের দৃষ্টিভঙ্গি করি তবে ব্যবহারকারীর কাছে এটি পুনরায় চালু করার কোনও উপায় থাকবে না।
bashsuspendএটি লগইন শেল কিনা তা অস্বীকার করে ঠিকানাগুলি । তবে আপনার ক্ষেত্রে, আপনার টার্মিনাল এমুলেটর সম্ভবত bashলগইন মোডে শুরু হয় না , যাতে সেফগার্ডটি ঠিক না থাকে।
zshএবং mkshসমস্যা নেই কারণ তারা সিএস-এর পরিবর্তে (এবং কলারের প্রসেস গ্রুপে সিএস-এর মতো, এবং শেলের মূল প্রক্রিয়া গ্রুপকে , কেবল প্রক্রিয়া নয় ) SIGTSTPপ্রেরণ করে Ctrl+Zসিএসএসের মতো একটি (যেমন প্রেরিত একটি ) সিগন্যাল প্রেরণ করে )। এতিম প্রক্রিয়া গোষ্ঠীতে বিতরণ করার সময় এড়ানো হয় এবং নেতার দলটি যোগ্যতা অর্জন করে। ধারণাটি হ'ল SIGTSTP এর এমন কোনও কিছু স্থগিত করা উচিত যা কোনও ব্যবহারকারীর দ্বারা পুনরায় শুরুযোগ্য নয়।SIGSTOPmkshzsh$$SIGTSTP
ইন mkshবা yash, এক এছাড়াও ব্যবহার করতে পারেন suspendআছে একটি নিজেই স্থগিত subshell:
$ (set -x; sleep 1; suspend; sleep 2)
+ sleep 1
+ suspend
[1] + Stopped(SIGSTOP) (set -x; sleep 1; suspend; sleep 2)
$ fg
[1] (set -x; sleep 1; suspend; sleep 2)
+ sleep 2
এটি এর সাথে কাজ করবে না zshযে কলারের পরিবর্তে মূল প্রক্রিয়া গোষ্ঠীতে SIGTSTP প্রেরণ করে। যে কোনও শেলটিতে killবিল্টিন রয়েছে, তার kill -s TSTP 0পরিবর্তে একটি সর্বদা ব্যবহার করতে পারে ।