2017-02-02 17 views
0

特定のユーザが自分のUbuntuサーバにログインしたときに実行したいPythonプログラムがあります。これまでは、useradd -m -s /var/jumpbox/jumpbox.py jumpboxというコマンドでこれを実行しようとしました。これはプログラムを実行しましたが、./jumpbox.py/var/jumpboxディレクトリから呼び出したときと同じように動作しませんでした。問題は、これはcursesメニューであり、オプションが選択されているときには別の.pyファイルが呼び出されて実行されます。 メソッドを使用してjumpbox.pyを実行すると、私のメニューは機能していましたが、オプションが選択されたときに他の.pyファイルを呼び出すことはありませんでした。 /var/jumpbox/jumpbox.pyファイルを実行する最善の方法は、jumpboxユーザー(およびこのユーザーのみ)がサーバーにログインしたときに実行されますか?Ubuntu Server特定のユーザのログイン時にスクリプトを実行

+0

@Hannu

おかげで、それは、2番目のスクリプトを実行するときに、あなたのスクリプトは、完全なパスがそれに適用されていないか、またはそれが何かを含んでいると、あなたのPYTHONPATHが間違っているだろうか? cd /tmp;/var/jumpbox/jumpbox.pyを実行するとうまくいきますか?そうでない場合、それは経路の問題です。まさにそれを解決する方法はあなたのコードに依存しますが、何かを実行するための呼び出しがある場合は、完全なパスを追加するだけです。インクルードに問題がある場合は、sys.path.insert(0、 "/ var/jumpbox")を使用して、役立つかどうかを確認できます。 – Hannu

答えて

0

.pyファイルが、jumpbox.pyの内部で呼び出されたパスです。私はそれが同じディレクトリにあったので、完全なパスなしでファイル名としてのみ参照していました。 os.system("python <full path>.py")は完全に機能しました。

関連する問題