構成ファイルを更新するRPMパッケージがあるため、サービス(rsyslog)を再起動する必要があります。私がサポートしているプラットフォームには、システム以前のバージョン(centos6)とシステムバージョン(centos7 +)が含まれています。私の質問は、systemdが存在することを確認し、このアップデートを実行した後にタスクを再開するための最良の方法は何ですか?私が知る限り、これで十分でしょう:
%posttrans
if test pidof systemd = 1; then
systemctl restart rsyslog
else
service restart rsyslog
fi
答え1
service
systemctl
可能であれば使用してください。 /bin/systemctl へのリダイレクトに関する通知を印刷するので、無視してもかまいません。したがって、次のものを使用できます。%posttrans service rsyslog restart
正しい順序は質問に使用した順序とは異なります。
または、%rhelマクロを使用できます。
%posttrans %if 0%{rhel} >=7 systemctl restart rsyslog %else service rsyslog restart %endif
ただし、これはビルド時に評価されます。したがって、EL6用のバイナリパッケージとEL7 +用のバイナリパッケージは1つずつ必要です。