[HOME] > PC-UNIX Tips > fping on Plamo-7
Created: 2019.05.10
Updated: 2019.05.17
ZABBIXのPING監視で利用されるfpingを Plamo-7にソースインストールして実行したのですが、うんともすんとも言わない(T_T)
$ /usr/local/sbin/fping -v
$
Plamo-7には/etc/protocolsファイルがないから〜(ででん:-)
適当にネット上から/etc/protocolsをダウンロードして配置したところ、fping が実行できるようになりました :-)
$ fping -v
fping: Version 4.1
fping: comments to david@schweikert.ch
インストールしたfpingは最新のfping-4.1なので、古い3系なら動作するかと考えて インストールしてみたのですが動作せず。
$ fping -v
$ echo $?
4
exitコードが珍しい4だったので、ソースファイルの"exit( 4 )"を探したところ、 次の箇所であることが判明。
[fping.c抜粋]
#ifdef _NO_PROTO
void crash_and_burn( message )
char *message;
#else
void crash_and_burn( char *message )
#endif /* _NO_PROTO */
{
if( verbose_flag )
fprintf( stderr, "%s: %s\n", prog, message );
exit( 4 );
} /* crash_and_burn() */
crash_and_burn()関数を呼び出している箇所を探してみます。すると、次のコードを 確認(^_^)
[fping.c抜粋]
/* confirm that ICMP is available on this machine */
#ifndef IPV6
if( ( proto = getprotobyname( "icmp" ) ) == NULL )
#else
if( ( proto = getprotobyname( "ipv6-icmp" ) ) == NULL )
#endif
crash_and_burn( "icmp: unknown protocol" );
getprotobyname()関数は、/etc/protocolsファイルを引数で検索します。 検索できない場合、NULL応答となりcrash_and_burnが呼び出されている模様。 で、Plamo-7の/etc/protocolsファイルを確認すると存在しないことが判明(@_@) これが原因でした。
PC-UNIX Tips
Written by kabada