可以在 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 腳本,都無關緊要,甚至是否使用和/或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
須藤好-n -20巴什myscript.sh

直接腳本呼叫也是如此:

./測試.py
須藤./測試.pl
不錯-n -20./測試.js
須藤好-n -20./測試文件

相關內容