क्या प्रति उपयोगकर्ता डेमन जैसा कुछ है?


11

मुझे कुछ पृष्ठभूमि प्रक्रियाओं को चलाने की आवश्यकता है जो एक निश्चित उपयोगकर्ता के साथ लॉग इन रहते हैं।

क्या प्रति उपयोगकर्ता डेमॉन की तरह कुछ मौजूद है? मैं केवल वैश्विक डेमॉन को जानता हूं जो कंप्यूटर स्टार्टअप से 'शटडाउन (या मैनुअल स्टार्टअप / किल) तक रहते हैं।

अभी के लिए मैंने एक स्क्रिप्ट बनाई है जो जाँचती है कि क्या प्रक्रिया पहले से मौजूद है और यदि नहीं बनती है तो प्रक्रिया बनाती है। यह स्क्रिप्ट तब nohupमेरे पास से कमांड के साथ चलाई जाती है .profile। इस तरह से प्रक्रिया स्टार्टअप पर शुरू होती है, और इसे केवल एक बार लॉन्च किया जाता है (यहां तक ​​कि कई बार rxvtआने और जाने के साथ)। फिर भी, मुझे लॉग इन करने के बाद यह कभी नहीं मारा जाता है (जो एक आपदा नहीं है, लेकिन यह प्रक्रिया को समाप्त करने के लिए क्लीनर भी है)।

जवाबों:


9

systemd निजी डैमन को प्रबंधित करने के लिए उपयोगकर्ताओं को अपने सिस्टमड इंस्टेंस को चलाने की अनुमति देता है।

यदि आपके पास पहले से ही सिस्टम स्थापित है, तो आपको केवल इतना करना है कि आप लॉन्च systemd --userकरके अपनी सेवाओं का प्रबंधन करें systemctl --user। में उपयोगकर्ता सेवाओं की खोज की जाएगी ~/.config/systemd/user

डिफ़ॉल्ट प्रणाली द्वारा लॉगआउट पर उपयोगकर्ता सेवाओं को मार देगा (जैसा कि आपने अनुरोध किया था)। loginctl --enable-linger $USERआदेश के साथ उपयोगकर्ता के लिए भाषा को सक्षम करके इस व्यवहार को बदला जा सकता है ।

Mor की जानकारी ArchWiki पेज पर देखी जा सकती है ।


1
क्या बैश कमांड के बजाय कॉन्फ़िगरेशन फ़ाइल से सक्षम लैंगर काम करने के लिए एक सेटिंग है।
CMCDragonkai 1

4

Dbus सेवा अनिश्चित रूप से ... के लिए अभिप्रेत है कि ... ठीक है, यह अनिश्चितता के लिए इस्तेमाल किया जा सकता है कि :-)। उपयोगकर्ता प्रति dbus deamon तब शुरू होता है जब उपयोगकर्ता डेस्कटॉप वातावरण में लॉग इन करता है और उपयोगकर्ता द्वारा लॉग आउट करने पर ( dbus-launchविकल्प का मैन पेज और विकल्प देखें --exit-with-session) समाप्त हो जाता है । एक dbus सेवा को dbus उदाहरण के साथ या सेवा के इंटरफ़ेस को पहली बार dbus के माध्यम से शुरू किया जा सकता है। प्रत्येक उपयोगकर्ता की अपनी डब सेवाओं के विनिर्देश हो सकते हैं, जो उपयोगकर्ताओं के घर में छिपी हुई निर्देशिका में या विश्व स्तर पर परिभाषित हैं /etc। बहुत सारे प्रलेखन और संदर्भ कार्यान्वयन के लिए फ्रीडेसटॉप पर डब मुखपृष्ठ देखें ।

मैं इन दिनों केवल डेबियन आधारित डिस्ट्रोस का उपयोग करता हूं। उन सभी के पास स्क्रिप्ट होती है /etc/X11/Xsession.dजिसमें बहुत बार एक स्ट्रिंग को संशोधित किया जाता है जो बहुत अंत में मूल्यांकन किया जाएगा जो चयनित डेस्कटॉप वातावरण शुरू करने वाली कमांड के रूप में होता है। Dbus के लिए एक ऐसी स्क्रिप्ट है, जो dbus आवरण के साथ कमांड को प्रस्तुत करती है dbus-launch। इस रैपर ने एक डब-सर्वर लॉन्च किया और कम से कम वेनिला डेबियन पर (और मैं "सभी डेबियन आधारित डिस्ट्रोस पर" कहने के लिए तैयार हूं) dbus-launchको विकल्प दिया गया है --exit-with-session

उपयोगकर्ता द्वारा dbus सेवा में लॉग इन करने के दौरान आपको अपनी इच्छित प्रक्रियाओं को लपेटने में सक्षम होना चाहिए और बाहर निकलने से पहले IIRC dbus स्वचालित रूप से अपनी सेवाओं को समाप्त करने का ध्यान रखती है।


2

यदि आप BASH को अपने शेल के रूप में उपयोग कर रहे हैं, तो आप ~ / .bash_logout में कुछ पता लगाने की कोशिश कर सकते हैं और रनिंग प्रक्रिया को बंद कर सकते हैं।

क्या आप शायद लंबी अवधि में तलाश कर रहे हैं की तरह कुछ के साथ (जैसे के माध्यम से डी-बस) बातचीत ConsoleKit या systemd के logind

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