2012-07-06 91 views
2

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

+0

也许试试'os.system(“注销”)'。我不太确定那可以工作 – inspectorG4dget 2012-07-06 06:07:03

+0

我试过了,我得到了“sh:logout:not found”。 – rzrscm 2012-07-06 06:08:41

+0

做'哪个注销'来找出'注销'命令的居住地点。它应该返回一个dirpath。在该dirpath上调用'os.system' – inspectorG4dget 2012-07-06 06:19:04

回答

3

你可以做一些讨厌的东西像刚才杀父:

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

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

5

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

3

脚本在用户登录帐户时自动运行 - 如何?你问题的含义是它是从bash运行的。虽然我订阅@Fredrick罗斯的建议,另一种是从使用shell中运行的Python脚本:

exec script-name.py 

exec命令替换当前程序,所以bash将被python取代。当Python脚本结束时,将不会返回shell。