Я пытаюсь назначить высокий уровень приоритета программе Python, как только она запустится с помощью Terminal. Я думаю о синтаксисе в духе:
sudo nice -n -20 pythonfile.py
Это возвращает ошибку: no such file
. Однако,
python pythonfile.py
работает просто отлично, так что файл определенно существует. Единственные другие примеры в Интернете, которые я видел, это файлы оболочки, заканчивающиеся на sh, такие как
sudo nice -n -20 ./test.sh
Но я хочу иметь возможность сделать это для файла Python. Кстати, я могу применить это к уже запущенной программе Python, используя , renice
но я хочу иметь возможность назначить высокий приоритет задаче с самого начала.
решение1
Неважно, запускаете ли вы скрипт оболочки или скрипт Python, и даже неважно, используете ли вы sudo
and/or nice
или нет. Окончательный синтаксис остается тем же, если вы обратите внимание накакую команду вы запускаете– то есть, вызываете ли вы явно интерпретатор или напрямую запускаете скрипт как программу.
В вашем рабочем примере вы работаете python
как реальная программа, а имя скрипта — это просто параметр. Это работает, потому что программа 'python' автоматически находится через $PATH.
python myscript.py
bash myscript.sh
node myscript.js
В вашем нерабочем примере вы не указали интерпретатор, поэтому вместо него скриптсамстановится командой для выполнения. Система снова пытается найти его через $PATH и терпит неудачу. Чтобы это сработало, необходимо указать, где находится скрипт или программа.
Обратите внимание, что в примере, который вы нашли для shellscripts, указан каталог, в котором находится скрипт (именно эта ./
часть означает «текущий каталог»).
./myscript.py
./myscript.sh
./myscript.rb
(Также обратите внимание: поскольку вы не сообщаете системе, какой интерпретатор использовать, сценарий1-я строканужно сделать это вместо этого. Обычно следует сказать #!/usr/bin/env python
.)
Итак, ответ таков: и sudo, и nice следуют тем же правилам, описанным выше, что и обычные команды. Например, вы можете запустить скрипт следующим образом:
питонмойскрипт.py судопитонмойскрипт.py хороший -н -20узелмойскрипт.js судо хороший -н -20Башмойскрипт.ш
То же самое касается и прямого вызова скрипта:
./тест.py судо./тест.pl хороший -н -20./тест.js судо хороший -н -20./тест.ш