एंड्रॉइड पर एक टर्मिनल ऐप में, दर्ज करें (रूट एक्सेस की आवश्यकता है):
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 की प्रतीक्षा कर रहा है और दूसरे उपयोगकर्ता सत्र को फिर से शुरू कर रहा है, मैं कह सकता हूं कि स्क्रिप्ट रुकी नहीं है। यह पूरे समय तक चलता रहा।