[enh] Restart services as needed only in conf_regen hooks

This commit is contained in:
Jérôme Lebleu 2016-04-16 18:36:20 +02:00
parent b4e50f8af6
commit 6c3de740aa
12 changed files with 73 additions and 39 deletions

View file

@ -13,6 +13,8 @@ do_pre_regen() {
} }
do_post_regen() { do_post_regen() {
regen_conf_files=$1
sudo mkdir -p "/etc/yunohost/certs/yunohost.org" sudo mkdir -p "/etc/yunohost/certs/yunohost.org"
sudo mkdir -p "${ssl_dir}/"{ca,certs,crl,newcerts} sudo mkdir -p "${ssl_dir}/"{ca,certs,crl,newcerts}
@ -62,7 +64,7 @@ case "$1" in
do_pre_regen $3 do_pre_regen $3
;; ;;
post) post)
do_post_regen do_post_regen $3
;; ;;
*) *)
echo "hook called with unknown argument \`$1'" >&2 echo "hook called with unknown argument \`$1'" >&2

View file

@ -18,8 +18,12 @@ do_pre_regen() {
} }
do_post_regen() { do_post_regen() {
[[ -f /etc/yunohost/from_script ]] \ regen_conf_files=$1
if [[ ! -f /etc/yunohost/from_script ]]; then
[[ -z "$regen_conf_files" ]] \
|| sudo service ssh restart || sudo service ssh restart
fi
} }
FORCE=$2 FORCE=$2
@ -29,7 +33,7 @@ case "$1" in
do_pre_regen $3 do_pre_regen $3
;; ;;
post) post)
do_post_regen do_post_regen $3
;; ;;
*) *)
echo "hook called with unknown argument \`$1'" >&2 echo "hook called with unknown argument \`$1'" >&2

View file

@ -11,7 +11,10 @@ do_pre_regen() {
} }
do_post_regen() { do_post_regen() {
sudo service nslcd restart regen_conf_files=$1
[[ -z "$regen_conf_files" ]] \
|| sudo service nslcd restart
} }
FORCE=$2 FORCE=$2
@ -21,7 +24,7 @@ case "$1" in
do_pre_regen $3 do_pre_regen $3
;; ;;
post) post)
do_post_regen do_post_regen $3
;; ;;
*) *)
echo "hook called with unknown argument \`$1'" >&2 echo "hook called with unknown argument \`$1'" >&2

View file

@ -39,8 +39,13 @@ do_pre_regen() {
} }
do_post_regen() { do_post_regen() {
regen_conf_files=$1
# fix some permissions
sudo chown -R metronome: /var/lib/metronome/
sudo chown -R metronome: /etc/metronome/conf.d/
# retrieve variables # retrieve variables
# TODO: retrieve only changed/new domains
domain_list=$(sudo yunohost domain list --output-as plain --quiet) domain_list=$(sudo yunohost domain list --output-as plain --quiet)
# create metronome directories for domains # create metronome directories for domains
@ -48,12 +53,8 @@ do_post_regen() {
sudo mkdir -p "/var/lib/metronome/${domain//./%2e}/pep" sudo mkdir -p "/var/lib/metronome/${domain//./%2e}/pep"
done done
# fix permissions [[ -z "$regen_conf_files" ]] \
sudo chown -R metronome: /var/lib/metronome/ || sudo service metronome restart
sudo chown -R metronome: /etc/metronome/conf.d/
# TODO: only restart if conf changed
sudo service metronome restart
} }
FORCE=$2 FORCE=$2
@ -63,7 +64,7 @@ case "$1" in
do_pre_regen $3 do_pre_regen $3
;; ;;
post) post)
do_post_regen do_post_regen $3
;; ;;
*) *)
echo "hook called with unknown argument \`$1'" >&2 echo "hook called with unknown argument \`$1'" >&2

View file

@ -48,8 +48,11 @@ do_pre_regen() {
} }
do_post_regen() { do_post_regen() {
regen_conf_files=$1
[ -z "$regen_conf_files" ] && exit 0
# retrieve variables # retrieve variables
# TODO: retrieve only changed/new domains
domain_list=$(sudo yunohost domain list --output-as plain --quiet) domain_list=$(sudo yunohost domain list --output-as plain --quiet)
# create NGINX conf directories for domains # create NGINX conf directories for domains
@ -57,7 +60,6 @@ do_post_regen() {
sudo mkdir -p "/etc/nginx/conf.d/${domain}.d" sudo mkdir -p "/etc/nginx/conf.d/${domain}.d"
done done
# TODO: only restart if conf changed
sudo service nginx restart sudo service nginx restart
} }
@ -68,7 +70,7 @@ case "$1" in
do_pre_regen $3 do_pre_regen $3
;; ;;
post) post)
do_post_regen do_post_regen $3
;; ;;
*) *)
echo "hook called with unknown argument \`$1'" >&2 echo "hook called with unknown argument \`$1'" >&2

View file

@ -31,8 +31,10 @@ do_pre_regen() {
} }
do_post_regen() { do_post_regen() {
# TODO: only restart if conf changed regen_conf_files=$1
sudo service postfix restart
[[ -z "$regen_conf_files" ]] \
|| sudo service postfix restart
} }
FORCE=$2 FORCE=$2
@ -42,7 +44,7 @@ case "$1" in
do_pre_regen $3 do_pre_regen $3
;; ;;
post) post)
do_post_regen do_post_regen $3
;; ;;
*) *)
echo "hook called with unknown argument \`$1'" >&2 echo "hook called with unknown argument \`$1'" >&2

View file

@ -12,16 +12,18 @@ do_pre_regen() {
} }
do_post_regen() { do_post_regen() {
regen_conf_files=$1
# retrieve variables # retrieve variables
# TODO: retrieve only new domains
domain_list=$(sudo yunohost domain list --output-as plain --quiet) domain_list=$(sudo yunohost domain list --output-as plain --quiet)
# create DKIM key for domains # create DKIM key for domains
for domain in $domain_list; do for domain in $domain_list; do
[ ! -f /etc/dkim/$domain.mail.key ] && { domain_key="/etc/dkim/${domain}.mail.key"
[ ! -f $domain_key ] && {
sudo opendkim-genkey --domain="$domain" \ sudo opendkim-genkey --domain="$domain" \
--selector=mail --directory=/etc/dkim --selector=mail --directory=/etc/dkim
sudo mv /etc/dkim/mail.private "/etc/dkim/${domain}.mail.key" sudo mv /etc/dkim/mail.private "$domain_key"
sudo mv /etc/dkim/mail.txt "/etc/dkim/${domain}.mail.txt" sudo mv /etc/dkim/mail.txt "/etc/dkim/${domain}.mail.txt"
} }
done done
@ -30,10 +32,15 @@ do_post_regen() {
sudo chown _rmilter /etc/dkim/*.mail.key sudo chown _rmilter /etc/dkim/*.mail.key
sudo chmod 400 /etc/dkim/*.mail.key sudo chmod 400 /etc/dkim/*.mail.key
# Reload systemd daemon, ensure that the socket is listening and stop [ -z "$regen_conf_files" ] && exit 0
# the service. It will be started again by the socket as needed.
# TODO: only restart if conf changed # reload systemd daemon
[[ "$regen_conf_files" =~ rmilter\.socket ]] && {
sudo systemctl -q daemon-reload sudo systemctl -q daemon-reload
}
# ensure that the socket is listening and stop the service - it will be
# started again by the socket as needed
sudo systemctl -q start rmilter.socket sudo systemctl -q start rmilter.socket
sudo systemctl -q stop rmilter.service 2>&1 || true sudo systemctl -q stop rmilter.service 2>&1 || true
} }
@ -45,7 +52,7 @@ case "$1" in
do_pre_regen $3 do_pre_regen $3
;; ;;
post) post)
do_post_regen do_post_regen $3
;; ;;
*) *)
echo "hook called with unknown argument \`$1'" >&2 echo "hook called with unknown argument \`$1'" >&2

View file

@ -11,7 +11,10 @@ do_pre_regen() {
} }
do_post_regen() { do_post_regen() {
sudo service avahi-daemon restart regen_conf_files=$1
[[ -z "$regen_conf_files" ]] \
|| sudo service avahi-daemon restart
} }
FORCE=$2 FORCE=$2
@ -21,7 +24,7 @@ case "$1" in
do_pre_regen $3 do_pre_regen $3
;; ;;
post) post)
do_post_regen do_post_regen $3
;; ;;
*) *)
echo "hook called with unknown argument \`$1'" >&2 echo "hook called with unknown argument \`$1'" >&2

View file

@ -11,7 +11,10 @@ do_pre_regen() {
} }
do_post_regen() { do_post_regen() {
sudo service glances restart regen_conf_files=$1
[[ -z "$regen_conf_files" ]] \
|| sudo service glances restart
} }
FORCE=$2 FORCE=$2
@ -21,7 +24,7 @@ case "$1" in
do_pre_regen $3 do_pre_regen $3
;; ;;
post) post)
do_post_regen do_post_regen $3
;; ;;
*) *)
echo "hook called with unknown argument \`$1'" >&2 echo "hook called with unknown argument \`$1'" >&2

View file

@ -41,8 +41,9 @@ do_pre_regen() {
} }
do_post_regen() { do_post_regen() {
# TODO: only restart if conf changed regen_conf_files=$1
sudo service dnsmasq reload \
[[ -z "$regen_conf_files" ]] \
|| sudo service dnsmasq restart || sudo service dnsmasq restart
} }
@ -53,7 +54,7 @@ case "$1" in
do_pre_regen $3 do_pre_regen $3
;; ;;
post) post)
do_post_regen do_post_regen $3
;; ;;
*) *)
echo "hook called with unknown argument \`$1'" >&2 echo "hook called with unknown argument \`$1'" >&2

View file

@ -11,7 +11,10 @@ do_pre_regen() {
} }
do_post_regen() { do_post_regen() {
sudo service nscd restart regen_conf_files=$1
[[ -z "$regen_conf_files" ]] \
|| sudo service nscd restart
} }
FORCE=$2 FORCE=$2
@ -21,7 +24,7 @@ case "$1" in
do_pre_regen $3 do_pre_regen $3
;; ;;
post) post)
do_post_regen do_post_regen $3
;; ;;
*) *)
echo "hook called with unknown argument \`$1'" >&2 echo "hook called with unknown argument \`$1'" >&2

View file

@ -15,7 +15,10 @@ do_pre_regen() {
} }
do_post_regen() { do_post_regen() {
sudo service fail2ban restart regen_conf_files=$1
[[ -z "$regen_conf_files" ]] \
|| sudo service fail2ban restart
} }
FORCE=$2 FORCE=$2
@ -25,7 +28,7 @@ case "$1" in
do_pre_regen $3 do_pre_regen $3
;; ;;
post) post)
do_post_regen do_post_regen $3
;; ;;
*) *)
echo "hook called with unknown argument \`$1'" >&2 echo "hook called with unknown argument \`$1'" >&2