Przykładowy przypadek użycia:
Chciałbym uruchamiać program Telegram Desktop okresowo co 3 godziny przez 15 minut, aby sprawdzać, czy są nowe wiadomości przychodzące. Po 15 minutach aplikacja powinna zamknąć się ponownie i uruchomić ponownie po następnych 3 godzinach.
cron
niemu możesz wyraźnie uruchamiać programy. Możesz również cron akill -15
, ale zależy to od aplikacji, czy traktuje to jako delikatne naciśnięcie, aby zamknąć, ignoruje lub po prostu ulega awarii.Odpowiedzi:
Cron a skrypt w tle
Oczywiście pierwszą rzeczą, która pojawia się w umyśle, jest użycie
cron
. To, czy używasz crona, czy małego skryptu w tle, zależy głównie od gustu.Zaletą crona jest to, że łączy się z istniejącym procesem (chociaż skrypt nie dodaje, cóż, właściwie nic do obciążenia procesora).
Zaletą skryptu w tle jest to, że jest bardziej elastyczny; po prostu zabij go i uruchom z innymi argumentami, jeśli chcesz zmienić ustawienia czasu lub inne. Możesz także użyć go ponownie z innymi aplikacjami bez konieczności przeprowadzania kolejnej konfiguracji, wystarczy jedno polecenie.
Poniższy skrypt można uruchomić za pomocą polecenia (np.)
Gdzie ostatni argument, jeśli jest ustawiony, wymusza zabicie aplikacji. Jeśli nie zostanie ustawiony, aplikacja zamknie się z gracją, aby upewnić się, że ewentualne zmiany itp. Nie zostaną utracone.
Scenariusz
Używać
cycle_run.py
Uruchom go za pomocą polecenia:
gdzie:
<command>
jest poleceniem do uruchomienia aplikacji (bez--%u
-section, w moim przypadku skopiowane z.desktop
pliku/home/jacob/Downloads/Telegram/Telegram
:)<cycle_time>
to (całkowity) czas cyklu w minutach (3 godziny = 180 w twoim przykładzie)<application_run_time>
to czas, w którym aplikacja powinna działać w minutach (15 w twoim przykładzie)force
jest opcjonalnym argumentem, aby wymusić zabicie aplikacji. Po prostu zostaw to, aby z wdziękiem zabić aplikację.Uruchamianie aplikacji z argumentami
Jeśli uruchamiasz aplikację z argumentami, upewnij się, że używasz cudzysłowu wokół polecenia, aby uruchomić aplikację , np .:
Uruchamianie aplikacji zminimalizowane lub w zasobniku
Okresowe uruchamianie i kończenie aplikacji będzie często potrzebne tylko w zminimalizowanym zakresie i / lub w zasobniku. Zgodnie z wnioskiem OP kilka uwag na ten temat:
Jeśli aplikacja oferuje uruchomienie w zasobniku z wiersza poleceń, wystarczy użyć argumentu, aby to zrobić. W przypadku
Telgram
argumentu do użycia jest:chociaż opcja wydaje się nie działać na wszystkich systemach (działa na moim), jak wspomniano tutaj . Będziesz musiał przetestować w swojej sytuacji.
Jeśli aplikacja nie oferuje opcji wiersza polecenia do uruchomienia zminimalizowanego lub w zasobniku, sugerowałbym użycie (tego) skryptu w połączeniu ze skryptem tutaj (sugerowałbym
pid
wersję -), który umożliwi uruchomienie aplikacja zminimalizowana.źródło
Edytuj crona za pomocą
crontab -e
i dodaj tę linię do swojego crontab, aby uruchomić ją jako zadanie harmonogramu co 3 godziny2. Otwórz terminal i wpisz poniżej polecenie
otwórz killtelegram.sh ze swoim ulubionym edytorem i napisz jak poniżej
Zapisz i wyjdź
Otóż to. Otworzy się automatycznie na każde 3 godziny i pozostanie na 15 minut i zostanie zabity.
źródło