スクリプトが終了したときに、スクリプトで現在のユーザーを自動的にログアウトさせたい。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に少し余分なコードを追加することで問題の解決策を見つけました(私の答えを参照)が、なぜ私が上で試していることが答えられていないのですか?