0

ユーザーが xinetd によって開始され、単一のインスタンスとして実行されるリモート スクリプトを実行しようとしているときに、フィードバックを提供したいと思います。

UDP または TCP ソケットを介して、ユーザーはテキストを xinetd がリッスンしているポートに送信します。スクリプトがまだ使用されていない場合は実行されますが、使用されていない場合は、「申し訳ありませんが、このスクリプトは既に使用されています。後でもう一度試してください」などのフィードバックをユーザーに提供したいと考えています。これはどのように行うことができますか?助けてくれてありがとう。

4

1 に答える 1

1

flockLinux では、util-linux のユーティリティを使用できます。

if ! ( flock -n 42 || exit 1

    # Things to do in the single instance
    echo "Processing..."
    sleep 60 
    echo "Done" 

    exit 0
 ) 42> /var/tmp/mylockfile  # any unique filename
then 
    # Things to do when the script is in use
    echo "Sorry, the service is in use."
fi

() 内のサブシェルが成功して終了することを確認してください (exit 0ここのように)。そうしないと、プロセスが終了した後に then 句が開始されます。

于 2012-12-27T23:29:33.600 に答える