ODROID C0でLubuntuを使用しています。 Pythonスクリプトがあります。これは自動起動する必要があります。
[スタートメニュー]>設定> LXSessionのデフォルトアプリケーション
、次に自動起動タブに移動し、xterm -e "python /path/to/script.py"
。 xtermの自動起動は機能しますが、エラーを読み取ります
xterm:execvpできません "python:そのようなファイルまたはディレクトリはありません
このPythonスクリプトの自動起動を適切に構成する方法についてのアイデアはありますか?
ありがとう。
xterm -e python /path/to/script.py
を使用してください。"
の引用符が希望どおりに動作していません。 xterm -e
は、"python
を引数としてpython
の代わりに、/path/to/script.py"
を引数として/path/to/script
を実行しようとしています。 この場合、引用符を単に省略できます。
シェルスクリプトまたは対話式でシェルを実行すると、 引用符は特別に処理されます および 引用符の削除 が実行されます。しかし、これはLXSession構成→自動起動→手動で自動起動されるアプリケーションで指定したコマンドでは発生しません。
幸いなことに、Ubuntuのxterm -e
は、コマンドとして扱うために1つの引数で Word splitting を実行しますが、複数の引数も受け入れます。そのため、-e
を最後のオプションにする必要があります。他のすべてはコマンドの一部として解釈されます。たとえば、xterm -e nano foo
を実行すると、foo
in XTermウィンドウでnano
が開きます。 man xterm
のように:
-eプログラム[引数...] このオプションは、xtermウィンドウで実行するプログラム(およびそのコマンドライン 引数)を指定します。また、-Tも-nでもない場合、 ウィンドウのタイトルとアイコン名を、実行中のプログラム のベース名に設定します。 command 行で指定します。 これはコマンドラインの最後のオプションでなければなりません。
パスに名前にスペースが含まれるスクリプトを実行しようとしていない場合、引用符を削除するだけです。
xterm -e python /path/to/script.py
他に2つの注意事項があります。
python
が終了し、XTermウィンドウも終了します。これが必要ない場合は、ユーザーとの対話を待つPythonスクリプトにコードを追加するか、python /path/to/script.py
を実行するラッパーシェルスクリプト(または任意の種類のラッパースクリプト)を記述できます。その後、ユーザーの操作を待ちます。lxterminal
の代わりにxterm
を使用できます。 lxterminal
コマンド は-e
を受け入れ、xterm
と同じように扱うため、これはlxterminal -e python /path/to/script/py
のようになります。 XTermと同様に、LXTerminalはコマンドの実行が終了すると終了します。