প্রশ্ন আমি একটি ইতিমধ্যে শুরু প্রক্রিয়া nohup / পর্দা করতে পারেন?


আমি SSH এর উপর দীর্ঘ চলমান ডেটা মাইগ্রেশন স্ক্রিপ্টগুলির কিছু পরীক্ষা-চালনা করছি। চলুন শুরু করা যাক 4 টা কাছাকাছি একটি স্ক্রিপ্ট চালানো শুরু করা যাক; এখন, 6 টা কাছাকাছি ঘুরছে, এবং আমি এই সব না করার জন্য নিজেকে cursing করছি screen

"Retroactively" কোন উপায় আছে nohup একটি প্রক্রিয়া, অথবা আমি আমার কম্পিউটার সব রাতে অনলাইন ছেড়ে প্রয়োজন? এটি সংযুক্ত করা সম্ভব না হলে screen থেকে /nohup একটি প্রক্রিয়া আমি ইতিমধ্যে শুরু করেছি, তাহলে কেন? পিতামাতা / শিশু প্রক্রিয়াকরণের সাথে কীভাবে কিছু করার আছে? (আমি একটি "কোন" উত্তর গ্রহণ করব না যা কমপক্ষে 'কেন' প্রশ্নটির সমাধান করবে না - দুঃখিত;))


247
2018-06-11 22:53


উত্স


শুধু সম্পর্কে একটি আকর্ষণীয় ব্লগ পোস্ট দেখেছি disown। blogs.oracle.com/ksplice/entry/disown_zombie_children_and_the - ojrac


উত্তর:


আপনি ব্যাশ ব্যবহার করছেন, আপনি চালাতে পারেন disown -h job

ত্যাজ্য করা

disown [-ar] [-h] [jobspec ...]

বিকল্প ছাড়া, প্রতিটি jobpec সক্রিয় কাজ টেবিল থেকে মুছে ফেলা হয়।   যদি -h বিকল্প দেওয়া হয়, কাজ   টেবিল থেকে মুছে ফেলা হয় না, কিন্তু হয়   চিহ্নিত করা যাতে SIGHUP পাঠানো হয় না   শেল পায় যদি কাজ একটি   SIGHUP। যদি jobpec উপস্থিত না হয়, এবং   না -a না -r বিকল্প হয়   সরবরাহ করা, বর্তমান কাজ ব্যবহার করা হয়। যদি   কোন jobspec সরবরাহ করা হয়, দী -a   অপশন সব মুছে ফেলার বা চিহ্নিত মানে   কাজ; দ্য -r একটি ছাড়া বিকল্প   jobpec যুক্তি অপারেশন নিষিদ্ধ   কাজ চলমান।


200
2018-06-11 23:03



অসাধারণ; আমি এই চালু হবে মত কিছু আশা ছিল। - ojrac
জীবন অন্যায় হতে পারে। ঘড়ি এবং আমি প্রায় একই সময় এই পোস্ট করা হয় :) - serverhorror
আপনি আমার নায়ক - Thomas Dignan
অস্বীকার bash নির্দিষ্ট নয়। এটি zsh, ksh93, ... - Phil P
আমি আসলে আপনি ব্যবহার করতে হবে disown %1 যদি 1 jobpec হয়, তবে আপনি যেখানেই ব্যবহার করেন FG বা BG এর বিপরীতে bg 1  serverwatch.com/tutorials/article.php/3935306/... - mltsy


ব্যবহার reptyr

README থেকে:

reptyr - A tool for "re-ptying" programs.
-----------------------------------------

reptyr is a utility for taking an existing running program and
attaching it to a new terminal. Started a long-running process over
ssh, but have to leave and don't want to interrupt it? Just start a
screen, use reptyr to grab it, and then kill the ssh session and head
on home.

USAGE
-----

  reptyr PID

"reptyr PID" will grab the process with id PID and attach it to your
current terminal.

After attaching, the process will take input from and write output to
the new terminal, including ^C and ^Z. (Unfortunately, if you
background it, you will still have to run "bg" or "fg" in the old
terminal. This is likely impossible to fix in a reasonable way without
patching your shell.)

তার লেখক দ্বারা কয়েক ব্লগ পোস্ট:


77
2018-05-22 21:27



আমি অন্তর্নির্মিত সরঞ্জামগুলির (যেমন অস্বীকার করা) সাথে থাকাতে যাচ্ছি, কিন্তু এটি রেপেরির মতো নমনীয় নয়। +1 টি - ojrac


আপনার tty থেকে tty থেকে একটি প্রক্রিয়া চুরি করতে, আপনি এই হ্যাকটি চেষ্টা করতে চাইতে পারেন:

http://www.ucc.asn.au/~dagobah/things/grab.c

বর্তমান লিনাক্স / গ্লিব সংস্করণগুলিতে কম্পাইল করার জন্য এটির কিছু সংস্কার প্রয়োজন, তবে এখনও কাজ করে।


22
2018-06-12 05:38



ব্যতিক্রমীভাবে শান্ত। - ojrac


যখন একটি প্রক্রিয়া শুরু হয়, STDIN, STDOUT এবং STDERR সংযুক্ত থাকে কিছু। কমান্ডটি শুরু হওয়ার পরে সাধারণত আপনি এটি পরিবর্তন করতে পারবেন না। এই ক্ষেত্রে আপনি বর্ণনা করছেন, সম্ভবত এটি ssh অধিবেশন সম্পর্কিত একটি TTY। নোহুপ বেশ অনেক কিছু ...

command < /dev/null > nohup.out 2>&1

অর্থাৎ STDIN / dev / null, STDOUT এ একটি ফাইল এবং STDERR সেটিকে STDOUT এ সেট করে। স্ক্রিন নিজেই সরাসরি যে ttys সেট আপ জড়িত অনেক বেশি পরিশীলিত জিনিস আছে।

আমি retroactively nohup কোনো চলমান প্রক্রিয়া পর্দা বা পর্দা কোনো উপায় জানি না। যদি আপনি cd / proc / $ pid / fd এ সিডি করেন এবং 0, 1 এবং 2 বিন্দু দেখতে চান।

আপনি অস্বীকার সঙ্গে কিছু ভাগ্য থাকতে পারে, কিন্তু যদি প্রক্রিয়া STDIN, STDOUT বা STDERR এর সাথে কিছু করার চেষ্টা করে না।


16
2018-06-11 23:04



ভাল মন্তব্যের জন্য +1। st (din | out | error) সমস্যাটির অর্ধেক অংশ, এবং আমি কোথায় শুরু করতে পরামর্শের প্রশংসা করি, পরের বার আমি এই জ্যামে আছি। - ojrac
আপনি আসলে বেশিরভাগ ইউনিক্সে এটি পরিবর্তন করতে পারেন। এটি একটি ঘৃণ্য হ্যাক। আমি এটা ভালোবাসি. :) আপনি যা করেন তা হল প্যাক্রেসের মত ডিবাগ সমর্থন ব্যবহার করে প্রক্রিয়াটির সাথে সংযোগ করুন, তারপরে প্রক্রিয়াটি dup2 () কে কল করতে 0,1,2 কে অন্য ফাইলহ্যান্ডে পুনরায় সংযোগ করতে বলুন। - Zan Lynx
হ্যাঁ, আপনি এটি পরিবর্তন করতে পারেন। প্রক্রিয়াটি থামিয়ে দেওয়া (SIGSTOP), এবং fd 0, 1, 2 এর জন্য ফাইল বর্ণনাকারীগুলিকে সংশোধন করা হচ্ছে। তারপর পুনরায় শুরু করা (SIGCONT)। - Michael Martinez


Cryopid grab.c এর লেখক থেকে আরও একটি বিকাশ যা কোনও ফাইলটিতে একটি প্রক্রিয়া স্থির করে, যা আপনি তখন প্রক্রিয়াটি পুনরায় শুরু করতে (পর্দার ভিতরে) চালান।


12
2018-06-14 18:26



নিস! আমি প্রসেস মাইগ্রেশন সম্পর্কে আমার মাস্টারের গবেষণায় ক্রিপপিড ব্যবহার করার চেষ্টা করেছি, কিন্তু আমি যা করেছি তা সব সময়ই কাজ করতে ব্যর্থ হয়েছে। শেষ পর্যন্ত, লিনাক্সের একটি প্রাচীন সংস্করণের সাথে ডিনক্যাপটি ব্যবহার করতে হয়েছিল। আপনি সম্ভবত ক্রিপোড উন্নয়নে জড়িত হয়? আমি আপনার নাম লেখকের ডোমেইন অনুরূপ দেখতে। - Juliano
আমি উন্নয়নে জড়িত নই, আমি শুধু বিশ্ববিদ্যালয়ের লেখককেই জানি। এই মুহুর্তে ক্রিপোড্ড বজায় রাখার সময় তার নেই, তাই মনে হচ্ছে কিছু লোক এ কাজ শুরু করেছে sharesource.org/project/cryopid - TRS-80


স্ক্রিনের অংশ ব্যতীত আমি আপনাকে কেবল একটি সহজ "না" দিতে পারি, আমি নিজেকে কারণেই আগ্রহী হতে চাই।

তবে আপনি চেষ্টা করেছেন disown (একটি bash নির্মিত)

~ $ echo $SHELL
/bin/bash
~ $ type disown
disown is a shell builtin
~ $ help disown
disown: disown [-h] [-ar] [jobspec ...]
     By default, removes each JOBSPEC argument from the table of active jobs.
    If the -h option is given, the job is not removed from the table, but is
    marked so that SIGHUP is not sent to the job if the shell receives a
    SIGHUP.  The -a option, when JOBSPEC is not supplied, means to remove all
    jobs from the job table; the -r option means to remove only running jobs.

11
2018-06-11 23:02





Solaris / OpenSolaris এ নোহুপ একটি চলমান প্রক্রিয়া নহে একটি পিপি পতাকা আছে - উদাহরণস্বরূপ, দেখুন সোলারিস 10 নুপুপ ম্যান পৃষ্ঠা


9
2018-06-13 00:59





আমি সম্প্রতি একটি লিঙ্ক দেখেছি neercs, যা একটি স্ক্রিন-মত ইউটিলিটি যা libcaca, একটি রঙের অ্যাসিসি-আর্ট লাইব্রেরি ব্যবহার করে নির্মিত। অন্যান্য বৈশিষ্ট্যগুলির মধ্যে, এটি একটি বিদ্যমান প্রক্রিয়াটি দখল করার ক্ষমতা এবং আপনার নিয়ামক (পর্দা) সেশনের ভিতরে পুনরায় পিতামাতার ক্ষমতা তুলে ধরে।

তবে আমি এটি ব্যবহার করি নি, তাই এটি কাজ করে কিনা তা আমি মন্তব্য করতে পারি না।


5
2018-06-14 21:03





আমি সম্ভবত এইরকম চিন্তাভাবনা করছি যে এটি আমাকে সংশোধন করার জন্য মুক্ত মনে হচ্ছে (আমি ইতিমধ্যে অস্বীকার করা সম্পর্কে শিখেছি!) ... একটি ctrl-z এবং "bg" কাজটি অন্তত পটভূমিতে চলমান প্রক্রিয়াটি পেতে পারে না? অথবা এটি কি মূল সমস্যা যা আপনি এখনও STDOUT দেখতে চাইলে এটি চলতে পারে?


2
2018-06-11 23:08



যেহেতু মালিকানাধীন TT মরে গেলে প্রক্রিয়াটিকে হত্যা করা হবে তাই OP কে বাক্সটি ছেড়ে যাওয়ার প্রয়োজন যেখানে সে চলমান কমান্ডটি জানায়, যা সে এড়িয়ে চলতে চায় - serverhorror
ঠিক আছে আমি যে কিনতে হবে। ব্যাখ্যার জন্য ধন্যবাদ. তাই অস্বীকার -হ পরামর্শ আমার খনি চেয়ে অনেক স্মার্ট চেহারা :-) - Chris_K
আপনি এখনও অস্বীকার করতে চাইলেই আপনি এটি করতে পারেন -হঃ stackoverflow.com/a/625436/705198 - AndrewPK


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


2
2018-06-11 23:35