Python中的一个系统命令在与cron一起执行时不工作

问题描述:

我正面临一个奇怪的问题。我有一个Python脚本,其中包括以下行Python中的一个系统命令在与cron一起执行时不工作

subprocess.call("ifconfig ens3 inet6 add " + str(address) + "/64", shell=True) 

它在循环中为OS分配一个IP。我面临的问题是,如果手动运行IP,则会分配IP,但在重新启动时使用cron运行IP时,不会分配IP。我知道脚本会在启动时运行,因为我将结果发送到日志。但是当我检查ip -6 addr时,如果脚本使用cron运行,则不会分配IP。但是如果我自己运行它们,它们会被分配。

+2

Cron有时没有'$ PATH'变量,因此找不到'ifconfig'的位置。你有没有尝试用'/ sbin/ifconfig'替换它(或者'ifconfig'可能)? –

+0

我会尝试 – Arya

+0

它的工作。你可以写在答案中,我会接受它 – Arya

克朗有时没有$PATH变量集,因此找不到ifconfig的位置。用/sbin/ifconfig(或ifconfig可能)替换它。

+0

从技术上讲,我相信'cron',以及系统上几乎所有其他进程,除了'init'和其他一些早期启动的东西,都会有一个'PATH'变量可用。当我看着'/ proc//environ'时,它肯定会在我的系统中执行。说“PATH”变量的内容通常不是用户期望的内容更为正确。 – twalberg