问题1很简单:
如何找出计算机在Python上运行的操作系统?
那是
sys.platform:
if sys.platform.startswith('win') or sys.platform.startswith('cygwin'): do_windows_stuff()elif sys.platform.startswith('darwin'): do_osx_stuff()elif sys.platform.startswith('linux'): do_linux_stuff()else: raise Exception("Nobody's written the stuff for {}, sorry".format(sys.platform))第二部分也很简单,但不是您想听到的那样:
如何在启动时运行脚本(Linux,Mac OSX,Windows)
你不知道 不在脚本内。您使用某种安装程序(或软件包postflight脚本,或其他)。
添加在启动时运行的内容需要root /
admin权限。您的脚本(希望)没有以这种权限运行。因此,它无法做到。是的,可以通过各种方式提升特权,但这几乎可以肯定不是您想要在启动时最终运行的脚本中要做的。
那么,您的安装程序该如何执行呢?
OS
X:您需要创建一个启动守护进程,以及一个附带的启动plist。创建启动守护程序和代理中对此进行了描述。如果您尚未阅读该文章,则不应该尝试这样做,并且您已经知道如何阅读该文章,因此没有什么其他要说的。
Windows:在Run和RunOnce注册表项中说明了执行此操作的官方方法。同样,您不应该不阅读本文就不要这样做,而且阅读本文之后很明显,除了两点:首先,在四个键中,它是HKLM
Run键。其次,在现代Windows中,这实际上不是在启动时运行的,而是在启动后的首次登录时运行的。如果不能接受,请研究
RunServices。
Linux:什么是安装程序?您是否期望为每个发行家庭提供一种方法?该入门书为您提供了您所需的大多数信息,除了确切地知道您要在每个发行版上做什么。通常,如果您只想让脚本运行一次并退出,并且有一个
rc.local.d,则只需在其中放置一个链接。否则,您需要创建一个
rc.d脚本,将其安装在正确的位置,然后运行正确的
chkconfig命令,或者您需要进行编辑
rc.local运行脚本。但是最简单的事情是:只需将英文文本放入INSTALL文件中,告诉人们这样做。最终,当某人决定为Ubuntu制作DEB或为Redhat制作RPM时,他们会为自己的发行版做正确的事情,并向您提交补丁或单独维护它。



