2

我正在用 Python 为 bash 编写一个 shell 脚本。该脚本在用户登录帐户时自动运行,我希望它在退出时将用户注销。我尝试使用 os.system('exit'),但它不起作用。我将如何实现这一目标?

4

4 回答 4

5

将您的 python 脚本设置为用户的登录 shell(在 /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 的建议,但另一种方法是使用以下命令从 shell 运行 Python 脚本:

exec script-name.py

exec命令替换当前程序,因此bash将替换为python. 当 Python 脚本结束时,将不会返回任何 shell。

于 2012-07-06T08:07:21.147 回答
0

你可能会杀死你登录的 tty

或者

这可能会奏效

https://github.com/tuwid/kickout

它是一个在 tty 中注销特定用户的脚本

于 2014-11-03T23:48:42.860 回答