httpd
他のサービス(含む)と通信する必要があるC ++プログラムがあります。/tmp
systemd
そして設定が適用されると、PrivateTmp=true
httpdのようなプロセスはデフォルトで私のプログラムのソケットを見ることができません。これは良い保護なPrivateTmp
ので、ユーザーは設定を変更したくありません。httpd
しかし、他のプロセスと共有できるように(サービスの起動/停止時に作成/削除される)ソケットファイルをどこに配置する必要がありますか?
(またはユーザーに閉じるように指示する唯一の/正しいソリューションですかPrivateTmp
?)
答え1
/var/tmp
固定ビット(たとえば)を使用して、ソケットを誰でも書き込むことができるディレクトリに配置できます/tmp
。
プログラムがsystemdによって開始されたデーモンの場合は、ユニットファイルで使用することを検討できます。これにより、このディレクトリはRuntimeDirectory=somedir
ユニットの起動時に作成され、ユニットが停止すると削除されます。/run
その後、.NETでソケットを作成できます/run/somedir/
。