ディスプレイスタンドがぶら下がるのを防ぐ方法は?

ディスプレイスタンドがぶら下がるのを防ぐ方法は?

NFSおよびCIFS共有フォルダを管理するためのWebフロントエンドを実装しています。 1つのセクションには、すべてのIPアドレスで利用可能な共有ポイント(エクスポート)が表示されます。

バックエンドはSMB / CIFS共有を照会するために使用され、NFS共有を照会するsmbclient -L <ip> -U <user>ために使用されます。showmount -e <ip>

ただし、showmountターゲットサーバーがすべての種類のファイアウォール(Windows、Mac、またはLinux)を実行している場合は停止します。 (このSE / SU投稿はここそしてここNFSにファイアウォールの問題があると言われています)

既存のシステムと存在しないシステムでデモインストールをテストしました。次の組み合わせをテストしますshowmount -e <ip>

Machine NFSD     Firewall   Result
Exists  Stopped  Off        clnt_create: RPC: Unable to receive
Exists  Stopped  On         HANGS
Exists  Running  On         HANGS
Exists  Running  Off        returns list of exports
None    n/a      n/a        clnt_create: RPC: Unable to receive

静止状態では(-9)でのみ死亡showmountできます。SIGKILL私たちは使用しようとしていますtimeoutしばらくするとあきらめますが、やはり止まります。

他の端末で実行するとstrace停止したことがわかります。connect

$ strace -p 63552
strace: Process 63552 attached
connect(4, {sa_family=AF_INET, sin_port=htons(111), sin_addr=inet_addr("192.168.2.10")}, 16

質問showmountこのシナリオでは、どのようにぶら下げずに使用できますか?

1つのアイデアは、まずNFS IP:ポートへの接続を開こうとし、次に成功すると実行されるプログラムを作成することですshowmount。しかし、他の方法はありますか?

バックエンドはCentos 8で動作します。

答え1

timeoutこの信号を使用するようにコマンドに指示できます(SIGKILL参照man timeout)。これはshowmount、次の場合に非常に効果的に機能します。

timeout --signal KILL 3s showmount -e remoteNFSServer

関連情報