কীভাবে আমার অ্যাপ্লিকেশনটি না মেরে nohup.out ফাইলটি ঘোরান


10

আমার nohup.outফাইল দ্রুত বাড়ছে।

আমি পটভূমিতে একটি অ্যাপ্লিকেশন চালাচ্ছি, এটি nohup.outফাইল লিখছে ,

এখন nohup.outআমার অ্যাপ্লিকেশনটি না মেরে ফাইলটি ঘোরানো দরকার । এই কাজ করা যাবে?


অনুলিপি করুন, তারপরে ছাঁটাই করুন।
জেনি ডি

আপনার প্রস্তাবিত এই দুটি অপারেশনের মধ্যে তিনি কিছু মূল্যবান লগ এন্ট্রিগুলি আলগা করতে পারেন। আমি এটি সুপারিশ করব না।
ক্লিঙ্কোদ

উত্তর:


6

আপনি কটাক্ষপাত করা উচিত প্রহার সঙ্গে একযোগে logrotate। আপনি যদি এর মাধ্যমে আপনার অ্যাপ্লিকেশন আউটপুটটি পাইপ করেন তবে আপনি SIGHUPআপনার চলমান অ্যাপ্লিকেশনটি না মেরে ফ্ল্যাগ প্রক্রিয়াটি করতে পারেন।

ফ্ল্যাগ (ফাইল লগার) এমন একটি প্রোগ্রাম যা এসটিডিআইএন থেকে ইনপুট পড়ে এবং একটি ফাইলে লেখে।

যদি সাইনগআপ গৃহীত হয়, লগ রোটেশনের জন্য অনুমতি দিয়ে ফাইলটি আবার খোলা হবে [আরএইচ-তে লোগ্রোটেট (8) দেখুন।]

লগ ফাইলটি কেবল তখনই পুনরায় খোলা হবে যখন ফ্ল্যাগ সনাক্ত করে যে ঘূর্ণন হয়েছে (যেমন, পুরানো ফাইল চলে গেছে বা ইনোড পরিবর্তন হয়েছে)। ফ্ল্যাগ চূড়ান্তভাবে ছোট (500 বাইটের কম মেমরির পদচিহ্ন)


Nohup nohup.out এর পরিবর্তে কোনও পাইপ ব্যবহার করতে পারে?
ব্রায়ান মিন্টন

1
ম্যান পৃষ্ঠা অনুসারে nohup.out ব্যতীত অন্য কোনও ফাইলে আউটপুট করতে আপনি ফাইল পুনঃনির্দেশ (>) ব্যবহার করতে পারেন:To save output to FILE, use 'nohup COMMAND > FILE'
jas_raj

4

আপনি এটিকে ঘোরাতে পারবেন না। আপনি এটি কমান্ড দিয়ে ছাঁটাই করতে পারেন >nohup.out, যা ফাইলের সমস্ত সামগ্রী মুছে ফেলবে।

আপনি যদি প্রথমে ফাইলটি অনুলিপি করতে পারেন এবং তারপরে এটি কেটে ফেলতে পারেন, যদি আপনার আউটপুট সংরক্ষণ করতে হয়। তবে একটি দৌড়ের জন্য একটি ছোট উইন্ডো রয়েছে, যেখানে আপনি ফাইলটি অনুলিপি করার পরে আউটপুট লেখা যেতে পারে তবে এটি কেটে দেওয়ার আগে। সেই উইন্ডোর সময় লেখা যে কোনও আউটপুট চিরতরে হারিয়ে যাবে।


1
আমি বিশ্বাস করি যে কাটা ফাইল হ্যান্ডেল বন্ধ না হওয়া অবধি ডিস্কের কোনও স্থান মুক্ত করবে না।

@ সাইমসিবিয়ান আপনার বিশ্বাসটি ভুল। অবিলম্বে স্থানটি খালি করে ফাইল কেটে দেওয়া।
ক্যাস্পারড

লোগ্রোটেট কপিরাইটআরঙ্কেটটি কৌশলটি করা উচিত।
ব্যবহারকারী 9517

পদক্ষেপ আমি বর্ণনা @Iain হয় সমতুল্য copytruncateমধ্যে logrotate। তবে nohup.outখুব কমই আপনি যে ধরণের ফাইলটি ক্রোন জবটি ঘোরার জন্য কনফিগার করবেন।
ক্যাস্পারড

2

আপনি পারবেন না।

আপনি ফাইলটি (লিঙ্ক) লিঙ্কমুক্ত করতে পারেন তবে ডেটাটিতে এখনও ডিস্কে একটি পায়ের ছাপ রয়েছে এবং যতক্ষণ না খোলা ফাইল হ্যান্ডেল থাকে ততক্ষণ তা লেখা যেতে থাকবে।

আপনি ফাইলটির নাম পরিবর্তন করতে পারেন - তবে আবার এটি এতে লেখা বন্ধ করে দেয় না (তবে আপনি যদি নিয়মিত পটভূমির কাজ শুরু করেন তবে নতুনরা একই ফাইলটিতে লিখবেন)।

সত্যিই আপনার স্পষ্টভাবে কাজের আউটপুটটিকে হ্যান্ডেল করার জন্য ডিজাইন করা কিছুতে (যেমন অ্যাপাচি রোটেটেলগস ) ডাইরেক্ট করা উচিত


লগরোতে কাউকে কন্ট্রিট করে কেউ?
ব্যবহারকারী 9517

এটি সম্পূর্ণরূপে nohup.out লাইন বাই লাইন যোগ করে কিনা, বা এটি nohup.out এর অবস্থানের পয়েন্টার বজায় রাখে কিনা তার উপর নির্ভর করে। উদাহরণস্বরূপ সার্ভারফল্ট / প্রশ্ন / ২২২৩৩3333/২ দেখুন ।
পেপলুয়ান

2

আমি এই বিষয়ে খুব দেরি করেছি কিনা তা নিশ্চিত নয়। তবে অন্যদের জন্য যারা এই ফোরামে এখন হোঁচট খাচ্ছেন তাদের জন্য, আমাকে বেত্রাঘাত বা কোনও কিছু দিয়ে চেষ্টা করার দরকার নেই।

আমার কাজটি এভাবে শুরু হয়:

nohup <my process> &

এটি আমার কাজ শুরু করে এবং সেই ডিরেক্টরিতে একটি nohup.out এ যুক্ত করা শুরু করে।

আমাকে যা করতে হয়েছিল তা হ'ল একটি লোগ্রোটেট সেটআপ করা যা সাধারণত ডিস্ট্রো সহ আসে এবং এ জাতীয় কিছু কনফিগার করে /etc/logrotate.conf

~/my abosolute path/nohup.out {
    size 1024k
    copytruncate
    rotate 100
    maxage 100
}

এবং এটা কাজ করে!! nohup.out একই ফাইলটিতে নতুন সংযোজন পাওয়ার সময় ছাঁটাচ্ছিল। প্রক্রিয়াটিও মারা যায়নি। এবং এর মতো একটি নতুন nohup.out nohup.out-20190528তৈরি হয়েছিল।

আশাকরি এটা সাহায্য করবে.


1

লোগ্রোটেটের একটি কপিরআরঙ্কেট বিকল্প রয়েছে, যা আপনার নির্দিষ্ট ফাইলটিকে সাধারণ ঘূর্ণায়নের (এবং সেট করা থাকলে, সংক্ষেপণ) স্কিমে অনুলিপি করার পরে কাটবে (খালি)।

   copytruncate
          Truncate  the  original log file in place after creating a copy,
          instead of moving the old log file and optionally creating a new
          one,  It  can be used when some program can not be told to close
          its logfile and thus might continue writing (appending)  to  the
          previous log file forever.  Note that there is a very small time
          slice between copying the file and truncating it, so  some  log-
          ging  data  might be lost.  When this option is used, the create
          option will have no effect, as the old log file stays in  place.

লোগ্রোটেট ম্যানপেজ থেকে ।


1

আপনি এর মতো কিছু করতে পারেন:

cp nohup.out nohup.out.save # save it somewhere
echo "" > nohup.out

আপনার অ্যাপ্লিকেশনটি মারার দরকার নেই।

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