Czy uruchomisz aplikację OS X podczas ponownego uruchamiania?

1

Może się to wydawać dziwnym pytaniem, ponieważ większość ludzi chciałaby wiedzieć, jak uruchomić program podczas uruchamiania. Zastanawiałem się, czy istnieje sposób na uruchomienie aplikacji OSX po naciśnięciu przycisku restartu z menu Apple.

CyrodiilSavior
źródło
Aby upewnić się, o co pytasz, co to za program do uruchomienia, gdy menu Apple & gt; Restart ... zostaje kliknięty i program uruchamia się i kończy swoje zadanie przed rzeczywistym procesem ponownego uruchomienia. Czy to jest poprawne? A kiedy a shutdown -r now komenda, która jest restartem, jest wydawana w Terminalu lub z aplikacji?
user3439894
To nie ma znaczenia, potrzebuję tylko tego programu do uruchomienia w menu Apple & gt; Uruchom ponownie po kliknięciu.
CyrodiilSavior
Jak już wspomniałem, moja metoda działa dla mnie z GUI i CLI w OS X 10.8.5. Jakiej wersji OS X używasz, aby móc testować w tej wersji?
user3439894
Używam Yosemite, myślałem, że może to był problem z wersją, ale nie byłem pewien.
CyrodiilSavior
Dobrze, przetestuję z Yosemite nieco później, muszę najpierw pociąć trawę.
user3439894

Odpowiedzi:

0

Jest to możliwe dzięki serwerowi proxy ponownego uruchomienia, tzn. Zmieniłeś nazwę /sbin/reboot, np. sudo mv /sbin/reboot /sbin/reboot.ori, a następnie utwórz reboot dowiązanie symboliczne do /sbin/reboot_proxy skrypt bash, który ma polecenia, które należy wykonać przed ponownym uruchomieniem, a następnie wykonuje się /sbin/reboot.ori. W rzeczywistości mam tę konfigurację na moim Macu z systemem OS X 10.8.5 i działa dobrze. Łapię oba reboot i shutdown polecenia. Które są uruchamiane po kliknięciu jabłko menu & gt; Restart... i lub Zamknąć... polecenia.

  • Uwaga: Najlepiej mieć drugi skrypt bashowy do przełączania stanu oryginalnego pliku i skryptu bash proxy, ponieważ musi on zostać cofnięty przed wykonaniem aktualizacji systemu OS X, które dotkną plików.

To jest kod w moim shutdown_proxy skrypt bash, który ma dowiązanie symboliczne dla obu reboot i shutdown komendy po zmianie nazwy oryginału na .ori rozbudowa. Dostosuj go do swoich potrzeb.

Zawartość reboot_proxy

#!/bin/bash

_name="$0";
echo "Reboot Proxy Executing..."

# Place command(s) to execute before reboot directly below this comment:


_command="$_name.ori"
echo "Executing $_command $@..."

"$_command" "$@"

Dodam, że z punktu widzenia bezpieczeństwa są tacy, którzy twierdzą, że jest to zła rzecz do zrobienia i powiedziałbym do pewnego stopnia, że ​​to prawda w odpowiednich warunkach, ponieważ jestem jedynym, który kiedykolwiek i kiedykolwiek dotknie mój Mac i ja mamy kilka warstw zabezpieczeń wykraczających poza wbudowane, osobiście nie mam problemu z użyciem takiej metody.

user3439894
źródło
Dzięki temu czuję, że będzie działać, ale z jakiegoś powodu, nawet po zastąpieniu starego pliku binarnego ponownego uruchomienia nowym skryptem bash wykonującym to, czego potrzebuję, nadal uruchamia się ponownie jak zwykle. Czy mogę zrobić coś złego?
CyrodiilSavior
Właściwie, gdy uruchamiasz z terminala, działa komenda reboot, wydaje się, że OSX używa innego polecenia podczas używania GUI
CyrodiilSavior
@ CyrodiilSavior, Sposób, w jaki mam ustawienia min, czy klikam menu Apple & gt; Uruchom ponownie ... i lub Zamknij polecenia ... lub uruchom reboot i lub shutdown w Terminalu, co znajduje się w moim „# Poleceniach do wykonania przed ponownym uruchomieniem” sekcja kończy się przed rzeczywistym restartem / zamknięciem.
user3439894
0

Od momentu wybrania menu Apple & gt; Reboot skutecznie Cię wylogowuje, prawdopodobnie możesz zrobić coś takiego jak tutaj: Uruchom skrypt przy wylogowaniu bez użycia haka wylogowania .

Unikałbym próby edytowania lub modyfikowania jakichkolwiek binariów systemowych, skryptów itp. I trzymania się tego, co jest dostępne w „przestrzeni użytkownika”. Głównie dlatego, że jakakolwiek aktualizacja systemu mogłaby zastąpić wszelkie wprowadzone zmiany, a jeśli zrobiłeś coś, co „zepsute” mogłoby uniemożliwić uruchomienie lub zalogowanie się ... To może być poważny problem.

Uwaga: Nie miałem jeszcze szansy, aby poddać to testowi, ale wygląda na to, że może tam być kilka leadów.

Community
źródło
To dobra sugestia, będę o tym pamiętać, zamierzam nadal pracować z @ user3439894 i jego metodą na teraz, ponieważ muszę to zrobić również na systemach linuxowych.
CyrodiilSavior