您可以使用 Mac 终端中的 Nice 运行 Python 程序吗?

您可以使用 Mac 终端中的 Nice 运行 Python 程序吗?

我尝试在终端运行时立即为 Python 程序分配高优先级。我正在考虑以下语法:

sudo nice -n -20 pythonfile.py

这将返回错误:no such file。但是,

python pythonfile.py

运行正常,所以文件肯定存在。我在互联网上看到的其他示例都是以 sh 结尾的 shell 文件,例如

sudo nice -n -20 ./test.sh

但我希望能够对 Python 文件执行此操作。顺便说一句,我可以将其应用于已经运行的 Python 程序,renice但我希望能够从一开始就为任务分配高优先级。

答案1

sudo无论你运行的是 shell 脚本还是 Python 脚本,甚至是否使用and/or都无关紧要nice。最终的语法仍然相同,只要你注意你正在运行什么命令– 也就是说,您是否明确调用解释器,或者是否直接将脚本作为程序运行。

在您的工作示例中,您正在python以实际程序的形式运行,并且脚本的名称只是一个参数。这是因为“python”程序是通过 $PATH 自动找到的。

python myscript.py
bash myscript.sh
node myscript.js

在您的非工作示例中,您没有指定解释器,因此脚本本身成为要执行的命令。系统再次尝试通过 $PATH 查找它,但失败了。要使其工作,您必须指定脚本或程序所在的位置。

请注意,您找到的 shellscripts 示例如何指定脚本所在的目录(即./“当前目录”的部分)。

./myscript.py
./myscript.sh
./myscript.rb

(另请注意:由于您没有告诉系统要使用哪个解释器,因此脚本的第一行必须这样做。通常应该说#!/usr/bin/env python。)

因此答案是,sudo 和 nice 都遵循与常规命令完全相同的上述规则。例如,您可以像这样运行脚本:

Pythonmyscript.py
须藤Pythonmyscript.py
很好-n-20节点myscript.js
sudo nice -n -20狂欢我的脚本

直接脚本调用也是如此:

./测试.py
须藤./测试程序
很好-n-20./测试.js
sudo nice -n -20./测试文件

相关内容