2

Pythonでbash用のシェルスクリプトを書いています。ユーザーがアカウントにログインするとスクリプトが自動的に実行され、終了時にユーザーをログアウトさせたい。os.system('exit') を使用してみましたが、うまくいきません。どうすればこれを達成できますか?

4

4 に答える 4

5

Python スクリプトをユーザーのログイン シェルとして設定します (/etc/passwd/ 内)。このようにして、スクリプトが終了した後、彼女は自動的にログアウトされます。

于 2012-07-06T06:11:09.307 に答える
4

親を殺すだけのような厄介なことをすることができます:

os.kill(os.getppid(), 9)

これはatexitと呼ばれる可能性がありますが、これによりプロセスも停止するため、クリーンではありません。

于 2012-07-06T06:09:33.683 に答える
3

ユーザーがアカウントにログインすると、スクリプトが自動的に実行されます。あなたの質問からの含意は、それがbashから実行されるということです。私は @Fredrick Roth の提案に同意しますが、別の方法として、以下を使用してシェルから Python スクリプトを実行することもできます。

exec script-name.py

このexecコマンドは現在のプログラムを置き換えるため、bashに置き換えられpythonます。Python スクリプトが終了すると、戻るシェルはありません。

于 2012-07-06T08:07:21.147 に答える
0

ログインしている tty を強制終了する可能性があります

また

これでうまくいくかもしれません

https://github.com/tuwid/kickout

tty で特定のユーザーをログアウトするスクリプトです。

于 2014-11-03T23:48:42.860 に答える