#!/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 # Required-Stop: # Should-Start: # Should-Stop: # 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="$( 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