我尝试在终端运行时立即为 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./测试文件