我希望我的脚本在脚本完成后自动注销当前用户。它可以在基于 Linux 的服务器 (Ubuntu) 上运行。我试过这行代码,但它不起作用。
subprocess.call(['logout'])
给出以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
我也试过:
subprocess.Popen(['sudo', 'logout'])
但随后用户必须输入他的密码才能注销。在这个没有 sudo 的情况下,我得到:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
我不想以 root 身份运行脚本本身。
我希望能够直接注销用户而无需输入密码。当您在常规终端中使用注销时,您通常不必输入密码,所以我真的不明白为什么这甚至是一个问题。
非常感谢所有帮助。
编辑:我通过向 ~/.bash_login 添加一些额外的代码找到了解决我的问题的方法(请参阅我的答案),但是为什么我在上面尝试的内容尚未得到解答。