0

これらのコードはファイル「code.py」にあります

param_list = ['/usr/bin/someapp.bin','-q','/usr/bin/someparam.conf','/tmp/output.pdf']
p = subprocess.Popen( param_list , shell=False, stdout=subprocess.PIPE )
p.communicate()

someapp.bin はファイルを生成し、ターミナル シェルで code.py の下で実行すると /tmp/output.pdf として出力されます。動作し、ユーザーはubuntuです。

しかし、 user : service_userを使用してサービスとして実行しようとする と、 /tmp フォルダーが書き込み可能で、誰でもアクセスできることを確認してください。

私の質問は、サービス中であると思われるように生成できない理由です。私の疑いは許可の問題ですが、それを機能させることができず、アドバイスと助けが必要です。ありがとう。

4

1 に答える 1

1

コードは機能するはずです。問題を追跡するには:

  1. コードに追加print(os.getuid())して、期待する UID で開始されていることを確認します
  2. のロギング/デバッグを有効にsomeapp.binして、エラーがあるかどうかを確認します
  3. 終了コードを調べる
  4. エラーを確認できるように、コマンドの出力をコンソールに出力します。

    output = p.communicate()[0]
    print(output)
    
于 2012-09-13T13:16:50.833 に答える