सिस्टम> 230 के साथ tmux / स्क्रीन कैसे चलाएं?


19

मैं 16.04 चलाता हूं और जब उपयोगकर्ता डिस्कनेक्ट करता है ( परिवर्तन का सारांश ) , तो मैं उसे systemdमार देता हूं ।tmux

क्या 230 के साथ चलने tmuxया screen(या किसी भी समान कार्यक्रम) का कोई तरीका है systemd? मैंने व्यवहार के पेशेवरों और विपक्षों के बारे में सभी गर्म विवादों को पढ़ा लेकिन कोई समाधान नहीं सुझाया गया था।

(मैं 229 में भी व्यवहार को देखता हूं)


1
यह अजीब है - मेरे पास systemd-229-4ubuntu7(xenial- अपडेट से) है और मुझे यह व्यवहार नहीं दिखता है। वैसे भी, यह व्यवहार पहले से ही डेबियनsystemd-230-2 में वापस कर दिया गया है , इसलिए संभवत: जल्द ही उबंटू में भी इसे वापस कर दिया जाएगा।
MvanGeest

mirbsd.org/~tg/Debs/dists/jessie/wtf/Pkgs/mirabilos-support में रोकथाम- systemd- * पैकेज हैं जो आपको पहले की तरह sysvinit को स्थापित करने और उपयोग करने की अनुमति देते हैं
mirabilos 20

जवाबों:


1

सिस्टम संस्करण 237 के साथ उबंटू 18.04 का उपयोग करना , मेरे द्वारा सुझाए गए समाधानों में से किसी ने भी काम नहीं किया।

मेरे लिए जो समाधान काम आया वह था

  • संपादित करें /etc/systemd/logind.conf
  • टिप्पणी हटाएं KillExlcudeUsers
  • उपयोगकर्ताओं की एक अलग सूची जोड़ें (जैसे, KillExlcudeUsers=root user1 user2)

19

उचित समाधान के लिए अपमानजनक systemd व्यवहार प्रणाली चौड़ा अक्षम है।

संपादित करें /etc/systemd/logind.conf( आपको sudo , बिल्कुल) और सेट करना चाहिए

KillUserProcesses=no

आप इस सेटिंग को एक अलग फ़ाइल में भी रख सकते हैं, जैसे /etc/systemd/logind.conf.d/99-dont-kill-user-processes.conf

फिर पुनरारंभ करें systemd-logind.service

sudo systemctl restart systemd-logind

4
किसी एक प्रणाली के लिए विशिष्ट समस्या का उचित समाधान कुछ सिस्टम वाइड सेटिंग कैसे सेट करता है?
जेपीथ

क्योंकि, जैसा कि आप केवल प्रश्न को पढ़ने से देख सकते हैं, अन्य सभी चर्चाओं को इस बारे में अन्यत्र दें कि प्रश्न अप्रत्यक्ष रूप से संदर्भित है, यह एक अनुप्रयोग के लिए विशिष्ट नहीं है । यह एक ऐसा बिंदु है जो प्रश्न में बोल्डफेस में भी है।
JdeBP

आपको केवल उपयोगकर्ता के माध्यम से भाषा को सक्षम करने की आवश्यकता है loginctl enable-linger <user>। से man loginctl: "यदि एक विशिष्ट उपयोगकर्ता के लिए सक्षम किया गया है, तो एक उपयोगकर्ता प्रबंधक को बूट के लिए उपयोगकर्ता के लिए रखा जाता है और लॉगआउट के बाद इधर-उधर रखा जाता है। यह उन उपयोगकर्ताओं को अनुमति देता है जो लंबे समय तक चलने वाली सेवाओं को चलाने के लिए लॉग इन नहीं होते हैं।"
एड्रियन गुंटर

यहां उबंटू 18.04। यह काम नहीं करता है, रिबूट के बाद भी नहीं। लैनिंग को सक्षम करना या तो नहीं है।
पा_

11

@ रिनविंड के उत्तर के आधार पर और एक यूनिट विवरण से प्रेरित सबसे अच्छा मैं पा सकता हूं कि TaaS (एक सेवा के रूप में Tmux) का उपयोग करना है - एक रीएटच के एक सामान्य अलग उदाहरण के tmuxलिए।

# cat /etc/systemd/system/tmux@.service

[Unit]
Description=tmux default session (detached)
Documentation=man:tmux(1)

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/tmux new-session -d -s %I
ExecStop=/usr/bin/tmux kill-server
KillMode=none

[Install]
WantedBy=multiplexer.target

# systemctl start tmux@instanceone.service
# systemctl start tmux@instancetwo.service
# tmux list-sessions

instanceone: 1 windows (created Sun Jul 24 00:52:15 2016) [193x49]
instancetwo: 1 windows (created Sun Jul 24 00:52:19 2016) [193x49]

# tmux attach-session -t instanceone

(instanceone)#

यह साफ-सुथरा है, लेकिन मैं यह नहीं जान सकता कि आप इसका इस्तेमाल क्यों करेंगे! :)
सरनॉल्ड

5
@sarnold: उन अनुप्रयोगों को नियंत्रित करने में सक्षम होने के लिए जो कंसोल से शुरू होते हैं, लेकिन जो बूट समय पर चलने वाले हैं। Minecraft एक उदाहरण है।
WoJ

5

RemainAfterExit =

एक बूलियन मान लेता है जो निर्दिष्ट करता है कि क्या सेवा को तब भी सक्रिय माना जाएगा जब उसकी सभी प्रक्रियाएं समाप्त हो जाती हैं। नहीं के लिए चूक।


धन्यवाद। मैंने आपके उत्तर को स्वीकार कर लिया और +1 किया क्योंकि यह समाधान का मूल प्रदान करता है। क्या आपको पता होगा कि यह एक इंटरैक्टिव मोड में प्रयोग करने योग्य है ( tmuxमेरे जवाब के विपरीत, इंटरैक्टिव तरीके से लॉन्च करके )?
WoJ

मुझे शक है। systemd शायद आपके tmux की परवाह नहीं करेगा जब तक कि आप systemd को यह न बताएं :-P (इस पर उनका दृष्टिकोण एक-दिमाग वाला है .... ऐसा लगता है कि यह उनका तरीका है या कोई रास्ता नहीं है।) आपको एक इकाई विवरण की आवश्यकता है। की तैनाती। तुम्हारा स्वीकार करने और / या तुम्हारा विस्तार करने के लिए स्वतंत्र महसूस करो ;-) मुझे रेप की आवश्यकता नहीं है: - D
रिनजविंड

3
इस उत्तर को और अधिक विवरण की आवश्यकता है जैसे कि उस सेटिंग का उपयोग कहां करना है।
कैस्परल्ड

1
यकीन है, लेकिन जवाब मैनुअल पेज की एक कॉपी / पेस्ट होने जा रहा है ;-)
रिनविंड

1
@WoJ आप (या शायद झंडे के साथ भी ) tmuxशुरू करने के लिए एक उपनाम बना सकते हैं । systemd-run --remain-after-exit tmux--scope --user
देबिल्स्की

2

आपको यहां बताए Typeअनुसार सेवा को सेट करने की आवश्यकता हैforking

मान लें कि जिस सेवा को आप चलाना चाहते हैं उसे screenकहा जाता है minecraft। तब आप minecraft.serviceएक पाठ संपादक में खुलेंगे और Type=forkingअनुभाग के तहत प्रविष्टि को जोड़ेंगे या संपादित करेंगे [Service]


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