একটি টার্মিনাল সেশন থেকে একটি চলমান স্ক্রিপ্ট পুনরুদ্ধার করুন


35

তাই আমি একাধিক চলমান স্ক্রিপ্ট / প্রোগ্রাম পরিচালনা করতে GNU স্ক্রিন ব্যবহার করছি । মাল্টিপ্লেক্সিং এবং বিচ্ছিন্নতা যথেষ্ট সহায়ক quite

আমি ডিস্ক থেকে একটি স্ক্রিপ্ট সরিয়েছি এবং এখন ব্যাকআপটি খুঁজে পেতে আমার কিছু সমস্যা হচ্ছে। যাইহোক, টার্মিনাল সেশনগুলির মধ্যে একটি ফাইল মুছে ফেলার আগে স্ক্রিপ্টটি কার্যকর করছিল এবং এটি ঠিক কাজ করে চলেছে।

টার্মিনাল সেশন হাইজ্যাক করার কোনও উপায় আছে যা বর্তমানে এই ফাইলটির সামগ্রীগুলি পুনরুদ্ধার করতে স্ক্রিপ্টটি চালাচ্ছে?


উত্তর:


61

স্ক্রিপ্টের পিড ব্যবহার করে দেখুন ps

ps -ef|grep script.sh
Fdo  8983  8463  0 12:28 pts/2    00:00:00 /bin/bash ./script.sh

পরীক্ষা /proc/$PID/fd/; স্ক্রিপ্ট ফাইলে একটি ভাঙা লিঙ্ক cat থাকা উচিত , তবে কাজ করা উচিত (স্ক্রিপ্ট চলাকালীন!):

cat /proc/8983/fd/255 
#!/bin/bash
# script contents!

শুভকামনা!


@ এমআরসি আমার মনে হয় সেই কাজটি, কারণ ফাইলগুলির বিষয়বস্তু মেমরিতে লোড করা হয়েছে
c4f4t0r

দুর্দান্ত পরামর্শ! এটি একটি সতর্কতাও হ'ল @fdo একটি শালীন ব্যাকআপ রুটিন স্থাপন করা দরকার, কারণ পরের বার তিনি এত ভাগ্যবান নাও হতে পারেন।
ক্রিগগি

12
@ c4f4t0r এটিকে মেমরিতে লোড করা বা না করাতে কিছুই করার নেই। খোলা হ্যান্ডলগুলি থাকাকালীন লিনাক্স স্পষ্টত কোনও ফাইল (আইনোড) সরিয়ে ফেলবে না - ফাইলটি ডিস্কে থেকে যায় এবং স্থান গ্রহণ করে। rmএবং অন্যান্য সরঞ্জাম লিঙ্ক মুক্ত ফাইল, ফাইল থেকে লিঙ্ক না সরিয়েই নাম প্রকৃত তথ্য করার জন্য (inode দ্বারা সমর্থিত), কিন্তু যতদিন একটি রেফারেন্স বিদ্যমান হিসাবে (কঠিন লিঙ্ক অথবা খোলা হ্যান্ডেল) inode মোছা হয়।
বব

শুধু কৌতূহলী ... আপনি কিভাবে fd 255 চেক করতে জানলেন? বা এটি কি কেবল উদাহরণ?
বাগানের মাথা

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