2013-08-27 15:14:44 +04:00
|
|
|
#!/bin/bash
|
|
|
|
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
|
|
|
### BEGIN INIT INFO
|
|
|
|
# Provides: openvz-fix-etchosts
|
|
|
|
# Required-Start: $network
|
2015-08-20 07:58:17 +04:00
|
|
|
# Required-Stop:
|
|
|
|
# Should-Start:
|
|
|
|
# Should-Stop:
|
2013-08-27 15:14:44 +04:00
|
|
|
# Default-Start: 2 3 4 5
|
|
|
|
# Default-Stop: 0 1 6
|
|
|
|
# X-Interactive: true
|
|
|
|
# Short-Description: fix /etc/hosts in openvz containers
|
|
|
|
# Description: fix /etc/hosts for services (e.g. slapd) which need that
|
|
|
|
# the local hostname does *not* resolve to localhost. In
|
|
|
|
# practice, remove hostname from the line
|
|
|
|
# 127.0.0.1 hostname localhost localhost.localdomain
|
|
|
|
# in /etc/hosts
|
|
|
|
### END INIT INFO
|
|
|
|
|
|
|
|
PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
|
|
|
LANG=fr_FR.UTF-8
|
|
|
|
export PATH LANG
|
|
|
|
|
|
|
|
. /lib/lsb/init-functions
|
|
|
|
|
|
|
|
function is_openvz_ct() {
|
|
|
|
local ctid="$(grep envID /proc/self/status | awk '{print $2}')"
|
|
|
|
[ -n "$ctid" -a "$ctid" != "0" ]
|
|
|
|
}
|
|
|
|
|
|
|
|
function fix_etchosts() {
|
|
|
|
local host hostname ip
|
|
|
|
|
|
|
|
# supprimer hostname --> 127.0.0.1
|
|
|
|
hostname="$(</etc/hostname)"
|
|
|
|
sed -i '/^\(127.0.0.1\|::1\)/s/'"$hostname"'\(\.[^ \t]*\)\?[ \t]*//g' /etc/hosts
|
|
|
|
|
|
|
|
# ajouter host hostname --> ip
|
|
|
|
host="$(hostname -f 2>/dev/null)"
|
|
|
|
hostname="$(hostname -s 2>/dev/null)"
|
|
|
|
local ip="$(LANG=C host "$host" 2>/dev/null | awk '/address / { gsub(/^.*address /, ""); print }' | head -n1)"
|
|
|
|
if [ -n "$ip" ] && ! grep -Fq "$ip" /etc/hosts; then
|
|
|
|
echo "$ip $host $hostname" >>/etc/hosts
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
case "$1" in
|
|
|
|
start)
|
|
|
|
if is_openvz_ct; then
|
|
|
|
log_action_msg "Fixing /etc/hosts..."
|
|
|
|
fix_etchosts
|
|
|
|
log_end_msg 0
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
stop)
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
log_action_msg "Usage: /etc/init.d/$NAME start"
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
exit 0
|