2日前、zabbix-agentの実行をzabbix_agentd直接実行からsystemctl start zabbix-agentに変更しました。奇妙なことがあります。 「sudo」を呼び出すJava GCの状態を監視するためにPythonスクリプトを作成しました。
jstat コマンドは /etc/profile ((/xxx/xxx/bin/jstat, /usr/local/sbin:/usr/local/bin:/usr/sbin ではありません) の $PATH 設定で jdk env とともにインストールされます。 . : /usr/bin)) Pythonはシェルコマンドの2行を呼び出します。
- jstat =commands.getoutput("あるjstat")
- subprocess.Popen(['sudo',jstat, opts, self.pdict['pid']], stdout=subprocess.PIPE)
zabbix_agentdを直接使用する場合。 Commands.getoutput("which jstat") は文 2 の絶対パス値を提供できます。ただし、Supervisor を使用して zabbix エージェントを実行すると認識されません。これは出力を提供します
プロセスを直接実行することとsystemctlを実行することにこれらの違いが発生するのはなぜですか?
答え1
私はまたsudoを使用するときに/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin Orderでそれを見つけたので、/usr/binにjstatを追加しようとしました。