2017-07-19 1 views
0

私はPythonスクリプトを持っています。ログインするたびに自動的に起動します。これはLinuxシステム上にある。私は*〜/ .configを/自動/での.desktopファイルを作成するのに十分ですについて説明し、ガイドに従っデスクトップと書き込み:。linuxのログイン時にPythonスクリプトを実行します

[Desktop Entry] 
Name=MyApp 
Type=Application 
Exec=python3 ~/.myapp/myapp 
Terminal=false 

私は再起動を数回試みたが、プログラムが実行されません、たとえそれが私のlxde環境で起動のアプリケーションのリストでアクティブになっているようだとしても。

+1

起動時またはログイン時?特定のユーザーまたは任意のユーザーのログインより具体的には、ログイン時に – Alfe

+0

となります。ログインは特定のものか任意のもので、重要ではありません。しかし、現時点では、私は特定のユーザではなく、ルートではないと試しています – AllExJ

+0

'/ home/allexj/.myapp/myapp'のような完全なパスを試しましたか?このスクリプトにはx-permissionsが設定されていますか? – Alfe

答えて

0

多くの場合、~(チルダ)のようなものは、設定ファイルに置かれても評価されません。代わりに完全パス(~/…の代わりに/home/user/…)を使用して、この方法が有効かどうかを確認してください。これがうまくいくなら、代わりに($HOME/…)を使用して、より移植性と抽象性を持たせることができます。

+0

ありがとうございます。しかし〜〜の代わりに$ HOMEを使用しようとしました。 \t そこには、スクリプトが実行されているユーザの家を特定する方法がありますか? – AllExJ

+0

評価を行うためにbashを呼び出すことができます: 'Exec = bash -c $ HOME/.myapp/myapp'。あなたのPythonスクリプトの最初の行に '#!/ usr/bin/env python3'を挿入し、それが実行可能であることを確認してください。 – Alfe

+0

"コマンドが見つかりません" – AllExJ

0

あなたはSystem Settings > Startup and Shutdown > Autostart*.desktopファイルまたはスクリプトのどちらか)に自動実行するためにアプリケーションを追加することができます(、少なくともKDE 5)KDEについて/etc/profile.d/

にそれを置き、ターミナルのログイン時にスクリプトを実行したい場合は、それが追加されます~/.config/autostartへのリンク。

+0

これはおそらく 'Terminal = false'のためにWindowsベースのものです。各sshログインまたはこれと同様の方法でこれを実行する必要はありません。 – Alfe

+0

ホームディレクトリだけで作業する必要があります。/etc// root /または他の何かがルート権限を持っているので、私が必要とするものではありません – AllExJ

+0

@bakatroubleに感謝しますが、コードに実装できるメソッドが必要で、スクリプトから直接実行でき、私のスクリプトから管理する必要はありません。 – AllExJ

0

これを実現するには、.bashrcファイルにこの行python /home/user/program.pyを追加します。これは、システムにログインするたびに呼び出されます。

関連する問題