यदि मैं कमांड पीएस या शीर्ष चलाता हूं, तो क्या वे केवल प्रक्रियाओं को सूचीबद्ध करते हैं या वे सेवाओं और प्रक्रियाओं दोनों को सूचीबद्ध करते हैं? आप कैसे बता सकते हैं कि क्या दी गई पंक्ति किसी प्रक्रिया या सेवा का प्रतिनिधित्व करती है?
यदि मैं कमांड पीएस या शीर्ष चलाता हूं, तो क्या वे केवल प्रक्रियाओं को सूचीबद्ध करते हैं या वे सेवाओं और प्रक्रियाओं दोनों को सूचीबद्ध करते हैं? आप कैसे बता सकते हैं कि क्या दी गई पंक्ति किसी प्रक्रिया या सेवा का प्रतिनिधित्व करती है?
जवाबों:
सबसे पहले, शब्द सर्विस लिनक्स वातावरण में शायद ही कभी उपयोग किया जाता है। अधिक सामान्य शब्द है डेमॉन ।
जबकि दोनों पद एक ही तरह के आवेदन, पद का वर्णन करते हैं सर्विस विंडोज वातावरण में इस शब्द के उपयोग से कुछ गुण जुड़े हुए हैं।
क्या एक डेमॉन को एक से अलग करता है साधारण प्रक्रिया बस यह है कि डेमॉन एक पृष्ठभूमि प्रक्रिया है और उपयोगकर्ता द्वारा बातचीत नहीं की जाती है। लेकिन जो सबसे महत्वपूर्ण है वह है पद डेमॉन यह सिर्फ एक शब्द है। मेरे ज्ञान में, लिनक्स में कोई झंडा नहीं है जो इसे बताता है " यह प्रक्रिया एक डेमॉन है "।
इसलिए डेमन किसी भी तरह से विशेष नहीं हैं। हम एक निश्चित प्रकार के प्रोग्राम को एक डेमन कहते हैं।
इसलिए भी कोई भेद नहीं किया जा रहा है ps या top।
लेकिन अगर आप जानना चाहते हैं कि आपकी वर्तमान में चल रही प्रक्रियाओं में से कौन सी संभावना है कि हम एक डेमन के बारे में सोचते हैं, तो कोशिश करें ps axjf:
oliver@ubuntuServer:~$ ps axjf
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
0 2 0 0 ? -1 S 0 0:00 [kthreadd]
2 3 0 0 ? -1 S 0 0:01 \_ [ksoftirqd/0]
2 5 0 0 ? -1 S 0 0:00 \_ [kworker/u:0]
2 6 0 0 ? -1 S 0 0:00 \_ [migration/0]
2 7 0 0 ? -1 S 0 0:00 \_ [migration/1]
2 9 0 0 ? -1 S 0 0:00 \_ [ksoftirqd/1]
2 10 0 0 ? -1 S 0 0:09 \_ [kworker/0:1]
2 11 0 0 ? -1 S 0 0:00 \_ [migration/2]
2 12 0 0 ? -1 S 0 0:00 \_ [kworker/2:0]
2 13 0 0 ? -1 S 0 0:00 \_ [ksoftirqd/2]
2 14 0 0 ? -1 S 0 0:00 \_ [migration/3]
2 15 0 0 ? -1 S 0 0:00 \_ [kworker/3:0]
2 16 0 0 ? -1 S 0 0:00 \_ [ksoftirqd/3]
2 17 0 0 ? -1 S< 0 0:00 \_ [cpuset]
2 18 0 0 ? -1 S< 0 0:00 \_ [khelper]
2 19 0 0 ? -1 S< 0 0:00 \_ [netns]
2 20 0 0 ? -1 S 0 0:00 \_ [kworker/u:1]
2 21 0 0 ? -1 S 0 0:00 \_ [sync_supers]
2 22 0 0 ? -1 S 0 0:00 \_ [bdi-default]
2 23 0 0 ? -1 S< 0 0:00 \_ [kintegrityd]
2 24 0 0 ? -1 S< 0 0:00 \_ [kblockd]
2 25 0 0 ? -1 S< 0 0:00 \_ [ata_sff]
2 26 0 0 ? -1 S 0 0:00 \_ [khubd]
2 27 0 0 ? -1 S< 0 0:00 \_ [md]
2 28 0 0 ? -1 S 0 0:00 \_ [khungtaskd]
2 29 0 0 ? -1 S 0 0:00 \_ [kworker/3:1]
2 30 0 0 ? -1 S 0 0:03 \_ [kswapd0]
2 31 0 0 ? -1 SN 0 0:00 \_ [ksmd]
2 32 0 0 ? -1 SN 0 0:00 \_ [khugepaged]
2 33 0 0 ? -1 S 0 0:00 \_ [fsnotify_mark]
2 34 0 0 ? -1 S 0 0:00 \_ [ecryptfs-kthrea]
2 35 0 0 ? -1 S< 0 0:00 \_ [crypto]
2 43 0 0 ? -1 S< 0 0:00 \_ [kthrotld]
2 44 0 0 ? -1 S 0 0:00 \_ [scsi_eh_0]
2 45 0 0 ? -1 S 0 0:00 \_ [scsi_eh_1]
2 67 0 0 ? -1 S 0 0:00 \_ [kworker/1:1]
2 68 0 0 ? -1 S 0 0:09 \_ [kworker/0:2]
2 110 0 0 ? -1 S 0 0:00 \_ [kworker/1:2]
2 190 0 0 ? -1 S 0 0:00 \_ [scsi_eh_2]
2 208 0 0 ? -1 S 0 0:00 \_ [kworker/2:1]
2 218 0 0 ? -1 S< 0 0:00 \_ [kdmflush]
2 235 0 0 ? -1 S< 0 0:00 \_ [kdmflush]
2 243 0 0 ? -1 S 0 0:13 \_ [jbd2/dm-0-8]
2 244 0 0 ? -1 S< 0 0:00 \_ [ext4-dio-unwrit]
2 508 0 0 ? -1 S< 0 0:00 \_ [kpsmoused]
2 20477 0 0 ? -1 S 0 0:00 \_ [flush-252:0]
0 1 1 1 ? -1 Ss 0 0:00 /sbin/init
1 303 302 302 ? -1 S 0 0:00 upstart-udev-bridge --daemon
1 306 306 306 ? -1 Ss 0 0:00 udevd --daemon
306 438 306 306 ? -1 S 0 0:00 \_ udevd --daemon
306 445 306 306 ? -1 S 0 0:00 \_ udevd --daemon
1 562 541 541 ? -1 Sl 101 0:04 rsyslogd -c5
1 600 599 599 ? -1 S 0 0:00 upstart-socket-bridge --daemon
1 612 612 612 ? -1 Ss 102 0:00 dbus-daemon --system --fork --activation=upstart
यह अपेक्षाकृत ताज़ा उबंटू सर्वर इंस्टॉलेशन के आउटपुट का हिस्सा है। आउटपुट पदानुक्रमित होना चाहिए, जिससे सिस्टम प्रक्रियाओं की पहचान करना आसान हो जाए।
उसी के इस हिस्से में जैसे ps उत्पादन। आप स्पष्ट रूप से देख सकते हैं, श्रृंखला की शुरुआत किसके साथ हुई थी sshd (SSH डेमॉन), जिसमें मैंने लॉगिन किया और अपने लिए एक उपयोगकर्ता सत्र बनाया। उस में, bash शुरू किया गया था और बाश में मेरे पास एक पृष्ठभूमि है vi प्रक्रिया और मेरी ps मैंने अभी अमल किया है।
8053 20352 20352 20352 ? -1 Ss 0 0:00 \_ sshd: oliver [priv]
20352 20378 20352 20352 ? -1 S 1000 0:00 \_ sshd: oliver@pts/0
20378 20379 20379 20379 pts/0 20570 Ss 1000 0:00 \_ -bash
20379 20569 20569 20379 pts/0 20570 T 1000 0:00 \_ vi
20379 20570 20570 20379 pts/0 20570 R+ 1000 0:00 \_ ps axjf
तो, उन दो टुकड़ों को देख रहे हैं ps आउटपुट, आपको डेमॉन और उपयोगकर्ता प्रक्रियाओं के बीच स्पष्ट रूप से अंतर करने में सक्षम होना चाहिए।
1 (जो होगा init प्रक्रिया)। लेकिन उस प्रक्रिया के बारे में क्या मैं पृष्ठभूमि में स्पॉन होगा (कुछ अनुप्रयोगों में है --daemon विकल्प)? क्या वह डेमॉन नहीं है? मेरी व्यक्तिगत राय में यह शब्द कुछ हद तक शिथिल है।
सेवाएँ प्रक्रियाएँ हैं, इसलिए हाँ, दोनों ps द्वारा सूचीबद्ध हैं। वे सिर्फ स्पष्ट रूप से प्रतिष्ठित नहीं हैं। एक सेवा एक प्रक्रिया है जो अनुरोधों या कनेक्शनों के लिए सुनती है।
आप नेटस्टैट का उपयोग उन प्रक्रियाओं को सूचीबद्ध करने के लिए कर सकते हैं जो सुन रही हैं (और जो कि एक सेवा का हिस्सा हैं)