web-dev-qa-db-ja.com

Autostart Python Terminal Lubuntuのスクリプト

ODROID C0でLubuntuを使用しています。 Pythonスクリプトがあります。これは自動起動する必要があります。

[スタートメニュー]>設定> LXSessionのデフォルトアプリケーション

、次に自動起動タブに移動し、xterm -e "python /path/to/script.py"。 xtermの自動起動は機能しますが、エラーを読み取ります

xterm:execvpできません "python:そのようなファイルまたはディレクトリはありません

このPythonスクリプトの自動起動を適切に構成する方法についてのアイデアはありますか?

ありがとう。

1
www139

代わりに、引用符なしで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を実行するラッパーシェルスクリプト(または任意の種類のラッパースクリプト)を記述できます。その後、ユーザーの操作を待ちます。
  • XTerm はLubuntuで正常に動作しますが、デフォルトのGUIターミナルエミュレーターは LXTerminal です。使用したい場合は、lxterminalの代わりにxtermを使用できます。 lxterminalコマンド-eを受け入れ、xtermと同じように扱うため、これはlxterminal -e python /path/to/script/pyのようになります。 XTermと同様に、LXTerminalはコマンドの実行が終了すると終了します。
1
Eliah Kagan