プロジェクト名がありますスナップロガーファイル、syslog、コンソール、またはリモート コンピューターにログを送信するために使用します (syslogd の機能と同じですが、さらに多くの機能があります)。
他のプロジェクトが を使用する場合はsnaplogger
、必ずログサブディレクトリを作成する必要があります。たとえば、私のコミュニケータープロジェクトは次のことを行います:
PACKAGENAME=communicatord
USERNAME=communicatord
GROUPNAME=communicatord
[...snip...]
LOGDIR=/var/log/${PACKAGENAME}
LOGFILE=${LOGDIR}/${PACKAGENAME}.log
mkdir -p ${LOGDIR}
touch ${LOGFILE}
chown ${USERNAME}:${GROUPNAME} ${LOGFILE}
chmod 640 ${LOGFILE}
私がやりたいのは、最後の 6 行をプロジェクトsnaplogger
が提供するスクリプトに移動することです。そうすれば、communicatord
スクリプトで定義された関数を使用するだけです。おそらく次のようになります。
prepare-snaplogger ${PACKAGENAME} ${USERNAME} ${GROUPNAME} true
最後のはtrue
、安全なログ サブフォルダーも必要であることを意味します。
postinst スクリプトは root で実行されるため、これらすべてを作成できますが、サービスはそれ自体として実行されるため (つまり、ユーザーがいるcommunicatord
)、それらのフォルダーを作成することはできません。
ここでの私の質問は、Debian や Ubuntu でこのような拡張スクリプトを提供するための文書化された方法はあるかということです。
私の考えでは、各プロジェクトは の下にそのようなものを提供する必要があります/usr/share/<project-name>/[debconf/?]
。しかし、 フォルダーを使用できるでしょうか/var/share/debconf/...
?
その結果、communicatord.postinst
スクリプトの先頭近くに、次のようにそのファイルをソースするための追加行が 1 つ追加されます。
. /usr/share/snaplogger/debconf