Você pode executar um programa Python usando Nice no Mac Terminal?

Você pode executar um programa Python usando Nice no Mac Terminal?

Estou tentando atribuir um nível de alta prioridade a um programa Python assim que ele é executado usando o Terminal. Estou pensando em sintaxe nos moldes de:

sudo nice -n -20 pythonfile.py

Isso retorna o erro: no such file. No entanto,

python pythonfile.py

funciona muito bem, então o arquivo certamente existe. Os únicos outros exemplos na internet que vi são arquivos shell que terminam em sh, como

sudo nice -n -20 ./test.sh

Mas quero poder fazer isso para um arquivo Python. Aliás, posso aplicar isso a um programa python já em execução, renicemas quero poder atribuir uma alta prioridade à tarefa desde o início.

Responder1

Não importa se você está executando um script Shell ou um script Python, e nem importa se você está usando sudoe/ou nicenão. A sintaxe final ainda é a mesma, contanto que você preste atenção emqual comando você está executando– isto é, se você está chamando explicitamente um intérprete ou se está executando diretamente o script como um programa.

No seu exemplo prático, você está executando pythoncomo o programa real e o nome do script é apenas um parâmetro. Isso funciona porque o programa 'python' é encontrado automaticamente através de $PATH.

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

No seu exemplo que não funciona, você não especificou o intérprete, então, em vez disso, o scriptem sitorna-se o comando a ser executado. O sistema tenta encontrá-lo novamente por meio de $PATH e falha. Para que funcione, você deve especificar onde o script ou programa está localizado.

Observe como o exemplo que você encontrou para shellscripts especifica o diretório no qual o script está localizado (essa é a ./parte, que significa "diretório atual").

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

(Observe também: como você não está informando ao sistema qual intérprete usar, o script1ª linhadeve fazer isso em vez disso. Normalmente deveria dizer #!/usr/bin/env python.)

Portanto, a resposta é: sudo e nice seguem exatamente as mesmas regras descritas acima dos comandos regulares. Por exemplo, você pode executar o script assim:

Pitãomeuscript.py
sudoPitãomeuscript.py
legal -n -20meuscript.js
sudo legal -n -20festameuscript.sh

O mesmo vale para a invocação direta do script:

./teste.py
sudo./teste.pl
legal -n -20./teste.js
sudo legal -n -20./teste.sh

informação relacionada