Das Problem

Das Problem

Ich habe dieses ziemlich einfache Skript:

#!/bin/sh

# Variables
directorio=$(dirname "${0}")
distribucion=$(lsb_release -s -c)
arquitectura=$(uname -m)

echo "I am in ${directorio}, in ${distribucion} with the ${arquitectura} arch."

exit 0

Das funktioniert tatsächlich und gibt die folgende Zeile zurück:

I am in ., in xenial with the x86_64 arch.

Also scheint alles in Ordnung zu sein, außer dass das System jedes Mal, wenn ich es ausführe, weder ausgeschaltet noch neu gestartet werden kann:

System hängt beim Ausschalten fest

Es bleibt genau dort hängen -Bild-, und tun Sie nichts anderes.

Ich verwende ein Ubuntu Mini 16.04.4 LTS x86_64, auf die neueste Version aktualisiert, ohne jegliche Änderungen.

Antwort1

Zunächst einmal vielen Dank an alle, die geholfen haben, das Problem zu finden, insbesondere an dieBeitrag des Nachtischs:

Warum glauben Sie, dass das Herunterfahren etwas mit dem Skript zu tun hat? Das ist eigentlich sehr unwahrscheinlich – das Aushängen des in der ersten Zeile erwähnten Laufwerks scheint eher das Problem zu sein. ~dessert

Bei diesem Verhalten scheint es sich um eine Art Fehler in den NFS-Paketen ( nfs-common) zu handeln, daher habe ich getestet, wie man es reproduzieren und vermeiden kann.

Zur Reproduktion habe ich Folgendes verwendet:

Gastgeber

  • KDE Neon 5.12 x86_64 (basierend auf Ubuntu 16.04 LTS)(aktualisiert und auf den neuesten Stand gebracht)
  • openssh-client(Ausführung 1:7.2p2-4ubuntu2.4)
  • nfs-kernel-server(Ausführung 1:1.2.8-9ubuntu12.1)
  • virtualbox-5.2(Ausführung5.2.12-122591~Ubuntu~xenial ) -zur Virtualisierung des Gastes

Gast

  • Ubuntu Mini 16.04.4 LTS x86_64(aktualisiert und auf den neuesten Stand gebracht) -Auf dieser Maschine ist weder eine Schnittstelle noch ein zusätzliches Paket installiert
  • openssh-server(Ausführung 1:7.2p2-4ubuntu2.4)
  • nfs-common(Ausführung 1:1.2.8-9ubuntu12.1)

Das Problem

Das Problem scheint mit dem per NFS gemounteten Ordner im Gastcomputer zusammenzuhängen. Dieser Gast ist darauf vorbereitet, /etc/fstabden per NFS freigegebenen Ordner des Hosts automatisch zu mounten.

Sagen wir:

# Host
/data/shared  davdriver:davdriver  777
       |
       +----  /folder1    davdriver:davdriver  777
       +----  /folder2    davdriver:davdriver  777
       +----  /script.sh  davdriver:davdriver  777  #The script mentioned in the question

# Guest
/data/nfs     davdriver:davdriver  777  #fstab: nofail,auto,noatime,nolock,intr,tcp,actimeo=1800

An diesem Punkt funktioniert alles einwandfrei.


Das Problem besteht darin, dass die Maschine beim Ausführen eines Skripts und eines beliebigen Poweroff-Befehls ( poweroff, reboot, ...) in einem über NFS gemounteten Ordner irgendwie hängen bleibt.

Ich habe folgende Tests durchgeführt:

Test 1: Laufenpoweroff INNENder per NFS gemountete Ordner

cd /data/nfs/folder1
poweroff
# OK

Test 2: Ausführen eines freigegebenen Skripts undpoweroff INNENder per NFS gemountete Ordner

cd /data/nfs/
./script.sh
poweroff
# GETS STUCK ! (the snapshot in the question)

Test 3: Ausführen eines freigegebenen Skripts undpoweroff DRAUSSENder per NFS gemountete Ordner

cd /data/nfs/
./script.sh
cd /data
poweroff
# OK

Test 4: Ausführen eines freigegebenen Skripts, Unmounten des NFS-gemounteten Ordners und Ausführen despoweroff INNENder Ordner, der zum Mounten von NFS verwendet wird.

cd /data/nfs/
./script.sh
cd /data
umount ./nfs
cd ./nfs
poweroff
# OK

Die Lösung

Nach dem Ausführen des Skripts scheint der NFS-Dienst mit einem Hintergrundprozess beschäftigt zu sein, und nur das Ausführen des poweroffBefehls außerhalb des über NFS bereitgestellten Ordners scheint dem System zu helfen, ihn auszuhängen und herunterzufahren.

Es ist auch möglich, es zuerst auszuhängen und dann auf den gemounteten Stammordner zuzugreifen. Dieses Szenario scheint keine Auswirkungen zu haben und das System wird ebenfalls ausgeschaltet.

verwandte Informationen