Was ist der Unterschied zwischen dem Befehl zum Herunterfahren und dem Herunterfahren über das Apple-Menü?

Was ist der Unterschied zwischen der Ausgabe eines Befehls shutdown -h nowim Terminal und dem Herunterfahren über das Apple-Menü?

Mit dem Befehl wird das System sofort heruntergefahren. Aber über das Menü dauert es etwa 30-40 Sekunden.

Ist es auch sicher, den Befehl shutdown -h nowdie ganze Zeit zu verwenden?

Antworten (1)

Aus der shutdownManpage:

 Upon shutdown, all running processes are sent a SIGTERM followed by a
 SIGKILL.  The SIGKILL will follow the SIGTERM by an intentionally inde-
 terminate period of time.  Programs are expected to take only enough time
 to flush all dirty data and exit.  Developers are encouraged to file a
 bug with the OS vendor, should they encounter an issue with this func-
 tionality.

Soweit ich weiß, können Prozesse beendet werden, bevor sie ordnungsgemäß bereinigt wurden.


Aus der launchctlManpage:

  reboot [system|userspace|halt|logout|apps|reroot <mount-point>]
              Instructs launchd to begin tearing down userspace. With no argu-
              ment given or with the system argument given, launchd will make
              the reboot(2) system call when userspace has been completely
              torn down. With the halt argument given, launchd will make the
              reboot(2) system call when userspace has been completely torn
              down and pass the RB_HALT flag, halting the system and not ini-
              tiating a reboot.

Dies ist meiner Meinung nach das Herunterfahren über das Menü. Es ist besser, da es sicherstellt, dass alle Userland-Prozesse sauber beendet werden, bevor das System angehalten / neu gestartet wird.


Ich wäre versucht zu sagen, dass die launchctlMethode besser ist, und die shutdown -h nowMethode könnte möglicherweise zu einigen Kuriositäten führen, wenn ein Prozess beendet wird, bevor er sich ordnungsgemäß bereinigt.

Und wenn eine Ihrer Apps nicht gespeicherte Änderungen enthält (z. B. ein Dokument, das Sie bearbeitet, aber nicht gespeichert haben), shutdown -hhaben Sie keine Möglichkeit, diese zu speichern. Bin mir bei der launchctlMethode nicht sicher...