नोह के साथ चलने वाले कार्यक्रमों की सूची कैसे प्राप्त करें


81

मैं SSH कनेक्शन के साथ CentOS (linux वितरण) चलाने वाले सर्वर तक पहुँच रहा हूँ। चूंकि मैं हमेशा लॉग इन नहीं रह सकता, इसलिए मैं अपने प्रोग्राम चलाने के लिए "nohup [कमांड] &" का उपयोग करता हूं।

मुझे नहीं पता था कि मैं उन सभी कार्यक्रमों की एक सूची प्राप्त कर सकता हूं, जिन्हें मैंने नोहुप का उपयोग करना शुरू किया था। "जॉब्स" केवल लॉग आउट करने से पहले ही काम करता है। उसके बाद, अगर मैं फिर से लॉग इन करता हूं, तो जॉब्स कमांड मुझे कुछ भी नहीं दिखाता है, लेकिन मैं अपनी लॉग फाइल में देख सकता हूं कि मेरे प्रोग्राम अभी भी चल रहे हैं।

क्या उन सभी कार्यक्रमों की एक सूची प्राप्त करने का एक तरीका है जो मैंने "नोह" का उपयोग करना शुरू कर दिया है?


एक उत्कृष्ट लेख मिला जो प्रश्न के साथ मदद कर सकता है: cyberciti.biz/faq/… । सबसे महत्वपूर्ण बात यह है कि यदि आप ps कमांड के आउटपुट की व्याख्या कर सकते हैं तो यह मददगार है, विशेष रूप से स्टेटम कॉलम। यदि आप ऐसा नहीं करते हैं, तो अभी लेख पढ़ें; ;-)
जंपिंग_नमेक

जवाबों:


115

जब मैंने शुरुआत की $ nohup storm dev-zookeper,

विधि 1: उपयोग करना jobs,

prayagupd@prayagupd:/home/vmfest# jobs -l
[1]+ 11129 Running                 nohup ~/bin/storm/bin/storm dev-zookeeper &

METHOD2: कमांड का उपयोग करना ps

$ ps xw
PID  TTY      STAT   TIME COMMAND
1031 tty1     Ss+    0:00 /sbin/getty -8 38400 tty1
10582 ?        S      0:01 [kworker/0:0]
10826 ?        Sl     0:18 java -server -Dstorm.options= -Dstorm.home=/root/bin/storm -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib -Dsto
10853 ?        Ss     0:00 sshd: vmfest [priv] 

TTY कॉलम ?=> nohupरनिंग प्रोग्राम्स के साथ।

विवरण

  • TTY कॉलम = प्रक्रिया से जुड़ा टर्मिनल
  • STAT कॉलम = एक प्रक्रिया की स्थिति
    • एस = इंटरप्टेबल स्लीप (किसी घटना के पूरा होने की प्रतीक्षा)
    • l = बहु-थ्रेडेड है (CLPT_THREAD का उपयोग करके, जैसे NPTL pthreads करते हैं)

संदर्भ

$ man ps # फिर सर्च करें /PROCESS STATE CODES


5
विधि 2 उन कार्यक्रमों को सूचीबद्ध नहीं करता है जिनके साथ शुरू किया गया थाnohup । यह उन प्रक्रियाओं को सूचीबद्ध करता है जो एक TTY से जुड़ी नहीं हैं, जो एक पूरी तरह से अलग बात है: प्रक्रियाएं nohupउनके माता-पिता TTY से जुड़ी रहने के साथ शुरू होती हैं जब तक कि यह बंद न हो जाए; जरूरी नहीं कि TTY से जुड़ी प्रक्रियाएं ही शुरू की गई हों nohup। यही है, विधि 2 सूचियों, अन्य प्रक्रियाओं के बीच , कुछ प्रोग्राम जो चल रहे हैं nohup
आर्कटुरस बी

4
नौकरियां मेरे लिए काम नहीं करती हैं, केवल एक ही ssh सत्र के लिए काम करता है, अगर मैं डिस्कनेक्ट करता हूं और फिर से कनेक्ट करता हूं तो यह पहले से सूचीबद्ध चल रही nohup प्रक्रिया को सूचीबद्ध नहीं करता है
Mojimi

29

इसके बजाय nohup, आपको उपयोग करना चाहिए screen। यह समान परिणाम प्राप्त करता है - आपकी कमांड "अलग" चल रही है। हालाँकि, आप स्क्रीन सत्र फिर से शुरू कर सकते हैं और उनके "छिपे हुए" टर्मिनल में वापस आ सकते हैं और उस टर्मिनल के अंदर हाल की प्रगति देख सकते हैं।

screenबहुत सारे विकल्प हैं। सबसे अधिक बार मैं इन का उपयोग करता हूं:

पहला स्क्रीन सत्र शुरू करने के लिए या हाल ही में अलग किए गए एक को संभालने के लिए:

screen -Rd 

वर्तमान सत्र से अलग करने के लिए: Ctrl+ACtrl+D

आप कई स्क्रीन भी शुरू कर सकते हैं - डॉक्स पढ़ें।


6
मुझे एक अच्छा विकल्प लगता है। मुझे यह भी पता चला है कि मैं "ps auwx" के साथ PIDs पा सकता हूं
Nils De Winter

7
प्रश्न स्पष्ट रूप से पूछता है कि क्या उन सभी कार्यक्रमों की सूची प्राप्त करने का एक तरीका है जो मैंने "नोह" का उपयोग करना शुरू कर दिया है? , फिर भी यह जवाब सवाल का थोड़ा भी पता नहीं करता है। इसे क्यों स्वीकार किया जाता है?
ल्यूक जोशुआ पार्क

3
क्योंकि 2013 में वापस, यह एकमात्र उत्तर था जिसने मदद की।
निल्स डी विंटर

21

यदि आपके पास "आउटपुट nohup.out" पर रीडायरेक्ट आउटपुट है, तो देखें कि इस फाइल का उपयोग कौन करता है

lsof | grep nohup.out

1
वह एक स्मार्ट तरीका है। लेकिन मेरे मामले में यह कोई परिणाम नहीं देता है। हालाँकि मुझे यकीन है कि नॉहप कमांड अभी भी चल रहा है, और यह nohup.out फ़ाइल का उपयोग कर रहा है।
जूलियस Š।

1
यह सभी TTY में ठीक है, लेकिन प्रत्येक nohup के लिए दोहरी प्रक्रिया दिखाते हैं!
नबी

@ NabiK.AZ से man lsof: "सामान्य थ्रेड्स और कार्यों में कॉलर की फ़ाइलें विरासत में मिलती हैं , लेकिन कुछ को बंद कर सकते हैं और दूसरों को खोल सकते हैं, इसलिए lsof हमेशा थ्रेड्स और कार्यों की सभी खुली फ़ाइलों की रिपोर्ट करता है।" मुझे इसके आदमी में nohup की जानकारी नहीं मिली, लेकिन ऐसा लगता है कि यह एक नहीं बल्कि दो धागों का उपयोग करता है।
यारोस्लाव निकितेंको

6

आप वास्तव में आदेशों की एक सूची प्राप्त नहीं nohupकर सकते, लेकिन आप कमांड का उपयोग करके उन्हें अपनी अन्य प्रक्रियाओं के साथ देख सकते हैं ps x। के साथ शुरू किए गए कमांड nohupटीटीवाई कॉलम में एक प्रश्न चिह्न होगा।


3
"ps x" ने मदद नहीं की, लेकिन मुझे पता चला कि "ps auxw" करता है।
निल्स डे विंटर

5

आप केवल शीर्ष कमांड का उपयोग कर सकते हैं और आपकी उपयोगकर्ता आईडी नौकरियों के चलने और उनके समय का संकेत देगी।

$ top

(यह सभी चल रहे काम दिखाएगा)

$ top -U [user ID]

(यह उन नौकरियों को दिखाएगा जो उपयोगकर्ता आईडी के लिए विशिष्ट हैं)


इसके अतिरिक्त, इसके बारे में अच्छी बात यह है कि यह आपके कंसोल पर रहता है ताकि आप नौकरी देख सकें और जान सकें कि यह कब खत्म होता है
rgilligan
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.