os.execl(path, arg0, arg1, ...)
os.execle(path, arg0, arg1, ..., env)
os.execlp(file, arg0, arg1, ...)
os.execlpe(file, arg0, arg1, ..., env)
os.execv(path, args)
os.execve(path, args, env)
os.execvp(file, args)
os.execvpe(file, args, env)
这些函数将操作系统命令作为一个新的进程加载,并替换掉当前的调用进程。exec*系列函数的第一个参数file是操作系统命令的全路径,args为程序需要传递的参数,通常arg0为调用命令,从arg1开始才是需要传递的真正参数。
下面演示如何通过execl调用centos 5.4中ntpdate命令,202.120.2.101为上海交通大学时间服务器,具体实例代码如下:#!/usr/bin/python3
import os
os.execl("/usr/sbin/ntpdate","ntpdate","202.120.2.101")
print("execute success!")
另外需要注意一点,在使用exec*命令时,ntpdate进程会替换当前进程,命令只会执行一次,如果使用以下方式来调用,程序依然只会执行一次后退出:#!/usr/bin/python3
import os
import time
while True:
os.execl("/usr/sbin/ntpdate","ntpdate","202.120.2.101")