एंड्रॉइड पर एक टर्मिनल ऐप में, दर्ज करें (रूट एक्सेस की आवश्यकता है):
su
am stop-user USER_ID
जैसे एक अतिथि उपयोगकर्ता के लिए, USER_ID
मेरे डिवाइस में 11
इसका कमांड है am stop-user 11
।
am stop-user
एकाधिक इनपुट को संसाधित नहीं करता है, इसलिए आप हर उस माध्यमिक उपयोगकर्ता के लिए कमांड निष्पादित करें जिसे आप रोकना चाहते हैं।
यह डिवाइस को पुनरारंभ करने से थोड़ा अलग है। यदि आप am
उपयोग देखेंगे तो आप देखेंगे;
am stop-user: stop execution of USER_ID, not allowing it to run any code until a later explicit start or switch to it.
जैसा कि कहा गया है, यह केवल उस उपयोगकर्ता खाते से संबंधित सभी गतिविधियों को रोक देता है, इसलिए जब भी कोई स्पष्ट शुरुआत या स्विच प्रदान किया जाता है, तो आपका सत्र खरोंच से शुरू होने के बजाय फिर से शुरू होगा।
यह पुष्टि करने के लिए कि उपयोगकर्ता वास्तव में रुका हुआ है या नहीं चल रहा है, मेरा उत्तर देखें ADB से वर्तमान में चल रहे उपयोगकर्ता नाम / आईडी का पता कैसे लगाएं ?
संक्षेप में, pm list users
या dumpsys activity
आपको बताएगा कि उपयोगकर्ता है RUNNING
या नहीं SHUTDOWN
। बाद वाला आदेश बेहतर है। यदि उपयोगकर्ता-सत्र वास्तव में रोक दिया गया है am stop-user
, तो आप mState=SHUTDOWN
उस उपयोगकर्ता को देखेंगे । हालाँकि, यदि उपयोगकर्ता रिबूट के बाद भी एक बार भी सक्रिय नहीं हुआ है, तो आपको इसकी कोई प्रविष्टि नहीं दिखाई देगी।
am stopuser 10
कि केवलpm list users
कमांड दिखा रहा था क्योंकि उपयोगकर्ता नहीं चल रहा था। मैं जाँच कीadb shell ps
के बादam stop-user 10
और पा सकते हैंu10_axx
प्रक्रिया चल। यह जांचने के लिए कि क्या वे रुके हुए हैं, मैंने 2 उपयोगकर्ता पर एक टर्मिनल में एक शेल स्क्रिप्ट चलाने की कोशिश की। स्क्रिप्ट प्रत्येक सेकंड (दूसरा प्रदर्शित करते हुए) एक प्रतिध्वनी बयान को लूप करती है। इस स्क्रिप्ट को शुरू करने के बाद,am stop-user 10
कमांड का उपयोग करते हुए , 5min की प्रतीक्षा कर रहा है और दूसरे उपयोगकर्ता सत्र को फिर से शुरू कर रहा है, मैं कह सकता हूं कि स्क्रिप्ट रुकी नहीं है। यह पूरे समय तक चलता रहा।