В чем разница между командой выключения и выключением из меню Apple?

В чем разница между вводом команды shutdown -h nowв терминале и завершением работы из меню Apple?

Использование команды мгновенно выключает систему. Но через меню это занимает около 30-40 секунд.

Также безопасно ли использовать команду shutdown -h nowвсе время?

Ответы (1)

Со shutdownстраницы руководства:

 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.

Насколько я понимаю, процессы могут быть убиты до того, как они будут должным образом очищены.


Со launchctlстраницы руководства:

  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.

Я думаю, что это то, что делает закрытие через меню, это лучше, поскольку гарантирует, что все пользовательские процессы будут завершены без ошибок перед остановкой / перезагрузкой системы.


У меня возникло бы искушение сказать, что этот launchctlметод лучше, и этот shutdown -h nowметод может привести к некоторым странностям, если процесс будет убит до того, как должным образом очистится.

И если в каком-либо из ваших приложений есть несохраненные изменения (например, документ, который вы редактировали, но не сохранили), shutdown -hвы не сможете их сохранить. Не уверен в launchctlметоде...