スクリプト実行時に「jrcmd:見つかりません」というエラーメッセージ

スクリプト実行時に「jrcmd:見つかりません」というエラーメッセージ

スクリプトを実行すると、次のエラーが発生します。

Ksh:行1:jrcmd:見つかりません

weblogicサーバーで同じコマンドを実行すると出力が表示されますが、スクリプト内で同じコマンドを実行するとエラーメッセージが表示されます。

スクリプトは次のとおりです。

 #!/bin/ksh 
process_id=`ssh -q account@servername -n "pa -ef |grep weblogic|great -v "grep""|awk '{print $2}'
ssh -q account@servername -n "jrcmd $process_id print_threads > /tmp/thread.txt" 

どんな答えでも期待できますか?

答え1

jrcmdスクリプト内で呼び出す場合は、実行可能ファイルのフルパスを指定する必要がありますjrcmdが、スクリプト内ではそうではありません。

Weblogicでコードが実行される理由は、パスがjrcdm識別されたためです$JROCKIT_HOME/bin/jrcmd。端末でスクリプトを実行するときは、jrcdmフルパスを指定する必要があります。

端末を開き、環境を設定します。たとえば、次のようになります。

setenv JROCKIT_HOME weblogic/bin/ #replace weblogic/bin/ by the correct path to jrcdm. 

次に、次のスクリプトを実行します。

#!/bin/ksh 
process_id=`ssh -q account@servername -n "pa -ef |grep weblogic|great -v "grep""|awk '{print $2}'
ssh -q account@servername -n "$JROCKIT_HOME/jrcmd $process_id print_threads > /tmp/thread.txt" 

関連情報