Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Mac shutdown

В Windows и Linux есть команда shutdown, она предназначена для перезагрузки и выключения машины из коммандной строки. Этой же командой можно отменить этот процесс (в Windows ключ «-a», в Linux — «-c»). В Маке ничего подобного нет:

A scheduled shutdown can be canceled by killing the shutdown process (a SIGTERM should suffice).

Какие-то костыли.

22 комментария
Alisey (alisey.myopenid.com) 2008

То что пишет Реймонд Чен о костылях в Windows поражает. А это ещё туда-сюда, можно понять.

pepelsbey.livejournal.com 2008

Если запустить на маке выключение, то пока система всё прикрывает и тупит, можно успеть открыть какой-нибудь текстовый редактор и НЕ сохраниться — в таком случае диалог сохранения приостановит процесс, а кнопка «Отмена» его прервёт. Кажется так, вспомнилось.

Пробовать лень — аптайм ;)

bealex.livejournal.com 2008

Круто. А когда возникает необходимость отменить процесс? Когда «убица через эН минут/айайай, не надо убиваца»?

Евгений Степанищев (bolknote.ru) 2008

Комментарий для alisey.myopenid.com:

Он пишет о том, какие приходится делать костыли, чтобы обходить грабли, которые разбросали разработчики приложений для Windows.

Евгений Степанищев (bolknote.ru) 2008

Комментарий для pepelsbey.livejournal.com:

Кажется, если долго ничего не делать, то она всё-таки закроет приложение, нет?

Евгений Степанищев (bolknote.ru) 2008

Комментарий для bealex.livejournal.com:

Чёрт, столько писал и закрыл окно. Почему браузеры не могут за этим следить.

В общем, на системах, где больше одного человека могут сидеть через какие-либо терминалы (тот же SSH) или где любой процесс может инициировать перезагрузку это необходимо.

Sergey Gladilin (www.westra.ru/club/person/gladilin/) 2008

Комментарий для Евгения Степанищева:

Я, честно говоря не понял, а что мешает убить shutdown process, раз просят?

Евгений Степанищев (bolknote.ru) 2008

Комментарий для www.westra.ru/club/person/gladilin/:

Если бы все так думали, интерфейсов не существовало бы.

pepelsbey.livejournal.com 2008

Комментарий для Евгения Степанищева:

Почему браузеры не могут за этим следить

Safari может ;)
А так — надо попробовать, что будет с диалогом сохранения, если его не трогать.

jankkhvej.blogspot.com 2008

killall shutdown?
И нечего давать кому попало сидеть терминалом на своём маке, да ещё с правами шатдауна :)

Евгений Степанищев (bolknote.ru) 2008

Комментарий для pepelsbey.livejournal.com:

А что он делает?

Евгений Степанищев (bolknote.ru) 2008

Комментарий для jankkhvej.blogspot.com:

Ситуация равно обратная: вы сидите через SSH где-то, редактируете себе по vi, и видите, что начинается shutdown.

jankkhvej.blogspot.com 2008

Комментарий для Евгения Степанищева:

Ну killall в самый раз. На сервере должно быть обязательно. Набирается так же быстро, как и shutdown. А можно и алиас сделать :)

makishvili.ya.ru 2008

На маке это тоже работает.
sudo shutdown -h now

Евгений Степанищев (bolknote.ru) 2008

Комментарий для jankkhvej.blogspot.com:

Это плохо уже потому, что привязано к реализации shutdown-процесса.

jimidini (jimidini.ya.ru) 2008

строго говоря это не особенность мака, а особенность BSD-реализации комманды shutdown (в freebsd всё точно так-же)

Евгений Степанищев (bolknote.ru) 2008

Комментарий для jimidini.ya.ru:

Фу :)

arikon.livejournal.com 2008

Комментарий для Евгения Степанищева:

При закрытии вкладки Safari выводит диалог вида:
Вы действительно хотите закрыть эту вкладку?

Вы ввели текст на «Mac shutdown | Евгений Степанищев | 23.10.2008, Nº 1905». Если закрыть вкладку, то Ваши изменения будут утеряны. Хотите закрыть вкладку в любом случае?

То же самое при закрытии окна браузера.

Евгений Степанищев (bolknote.ru) 2008

Комментарий для arikon.livejournal.com:

OMG! Когда же это в остальных браузерах появится?!

jankkhvej.blogspot.com 2008

Комментарий для Евгения Степанищева:

Как раз в случае посылки SIGTERM процессу нет никакой привязки к реализации. Совершенно логично, что для прекращения процесса shutdown надо воспользоваться тем же средством, что и для все остальных.

Послушать вас, так одну утилиту kill надо заменить параметром к каждому бинарнику только для того, чтобы можно было завершить выполняющиеся копии?

Или я что-то не так понял с самого начала?

Евгений Степанищев (bolknote.ru) 2008

Комментарий для jankkhvej.blogspot.com:

Процессу — нет. Человеку, запускающему команду, — да.

Послушать меня, так не надо закладываться на конкретную реализацию, например, при которой у нас есть процесс (shutdown), который и занимается перезагрузкой.

jankkhvej.blogspot.com 2008

ага. теперь я начал понимать ваше изначальное раздражение.