退出时如何让shell脚本退出shell?

时间:2012-07-06 06:04:30

标签: python bash shell

我正在用Python编写一个用于bash的shell脚本。当用户登录帐户时,脚本会自动运行,我希望它在退出时将用户注销。我尝试使用os.system('exit'),但它不起作用。我怎么做到这一点?

4 个答案:

答案 0 :(得分:5)

将您的python脚本设置为用户的登录shell(在/ etc / passwd /中)。这样,她将在脚本退出后自动注销。

答案 1 :(得分:4)

你可以做一些讨厌的事情,比如杀死父母:

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

这可以被称为atexit,但它会是不洁净的,因为这会导致你的过程死亡。

答案 2 :(得分:3)

当用户登录帐户时,脚本会自动运行 - 如何?你的问题的含义是它是从bash运行的。虽然我订阅了@Fredrick Roth的建议,但另一种方法是使用以下命令从shell运行Python脚本:

exec script-name.py

exec命令会替换当前的程序,因此bash将替换为python。当Python脚本结束时,将没有shell返回。

答案 3 :(得分:0)

你可能会杀死你登录的tty

OR

这可能会成功

https://github.com/tuwid/kickout

它是一个在tty

中注销特定用户的脚本