[HOME] > PC-UNIX Tips > fping on Plamo-7

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