Mac ターミナルで Nice を使用して Python プログラムを実行できますか?

Mac ターミナルで Nice を使用して Python プログラムを実行できますか?

ターミナルを使用して Python プログラムを実行するとすぐに、そのプログラムに高い優先度レベルを割り当てようとしています。次のような構文を考えています:

sudo nice -n -20 pythonfile.py

これはエラーを返します: no such file。ただし、

python pythonfile.py

問題なく動作するので、ファイルは確かに存在します。私がインターネットで見た他の例は、shで終わるシェルファイルだけです。

sudo nice -n -20 ./test.sh

しかし、私はこれを Python ファイルに対して実行できるようにしたいと考えています。ちなみに、これを使用して、すでに実行中の Python プログラムに適用できますreniceが、最初からタスクに高い優先度を割り当てられるようにしたいと考えています。

答え1

sudoシェルスクリプトを実行しているかPythonスクリプトを実行しているかは関係ありません。また、and/orを使用しているかどうかも関係ありませんnice。最終的な構文は同じですが、次の点に注意する必要があります。実行しているコマンドつまり、インタープリターを明示的に呼び出しているか、スクリプトをプログラムとして直接実行しているかということです。

実際の例では、python実際のプログラムとして実行されており、スクリプトの名前は単なるパラメータです。これは、「python」プログラムが $PATH を通じて自動的に検出されるため機能します。

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

動作しない例では、インタープリタを指定していないため、代わりにスクリプト自体は実行するコマンドになります。システムは再度 $PATH を介して検索を試みますが、失敗します。これを機能させるには、スクリプトまたはプログラムが配置されている場所を指定する必要があります。

シェルスクリプトの例では、スクリプトが配置されているディレクトリ ( ./「現在のディレクトリ」を意味する部分) が指定されていることに注意してください。

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

(また、システムにどのインタープリタを使用するか指示していないため、スクリプトの1行目代わりに を実行する必要があります。通常は と表示されます#!/usr/bin/env python

答えは、sudo と nice はどちらも通常のコマンドとして上記で説明したのと同じルールに従うということです。たとえば、次のようにスクリプトを実行できます。

パイソンスクリプト
須藤パイソンスクリプト
素敵 -n -20ノードスクリプト
sudo ナイス -n -20バッシュスクリプト

直接スクリプトを呼び出す場合も同様です。

./テスト
須藤./テスト
素敵 -n -20./テスト
sudo ナイス -n -20./テスト

関連情報