Ubuntu UA

Загальні розділи => Головний => Тема розпочата: max5555 від 2008-06-20, 21:52:49

Назва: Як налаштувати запуск та зупинку програми за розкладом?
Відправлено: max5555 від 2008-06-20, 21:52:49
Необхідно кожен день у певний час запускати програму, та через деякий час її закрити.
Щоб запустити програму можна використати Kalarm, але як після цього автоматично закрити програму?
Назва: Re: Як налаштувати запуск та зупинку програми за розкладом?
Відправлено: AZCat від 2008-06-21, 07:44:43
man cron
Назва: Re: Як налаштувати запуск та зупинку програми за розкладом?
Відправлено: swift від 2008-06-21, 17:26:17
cron не вміє закривати програму.
Назва: Re: Як налаштувати запуск та зупинку програми за розкладом?
Відправлено: AZCat від 2008-06-21, 22:54:52
але може виконати kill за розкладом :)
Назва: Re: Як налаштувати запуск та зупинку програми за розкладом?
Відправлено: max5555 від 2008-06-22, 16:03:30
але може виконати kill за розкладом :)

Звичайно може. І не тільки cron ;)
Але kill це дуже грубий метод, це не дає програмі можливості зберегти ту інформацію, що на час виконання kill зберігалася у тимчасових файлах.

Я пробував закривати програми за допомогою kill з сигналами 3, 10, 12, 15, 18, 19 - шукав той сигнал, що отримує програма, коли їй роблять "Alt+F4" - не знайшов.

Окрім того, наскільки я зрозумів, треба писати окремий скрипт для знаходження PID процессу використовуючи ім'я програми.
Назва: Re: Як налаштувати запуск та зупинку програми за розкладом?
Відправлено: Юра від 2008-06-22, 17:40:30
але може виконати kill за розкладом :)

Звичайно може. І не тільки cron ;)
Але kill це дуже грубий метод, це не дає програмі можливості зберегти ту інформацію, що на час виконання kill зберігалася у тимчасових файлах.... шукав той сигнал, що отримує програма, коли їй роблять "Alt+F4" - не знайшов.
kill - це правильний метод, якщо програма сама не передбачає іншого методу.
Щодо сигналів для певних програм - читай їх мани, вони мусять про це писати (USR1, USR2,...).
Назва: Re: Як налаштувати запуск та зупинку програми за розкладом?
Відправлено: AZCat від 2008-06-23, 18:39:29
але може виконати kill за розкладом :)

Звичайно може. І не тільки cron ;)
Але kill це дуже грубий метод, це не дає програмі можливості зберегти ту інформацію, що на час виконання kill зберігалася у тимчасових файлах.

Окрім того, наскільки я зрозумів, треба писати окремий скрипт для знаходження PID процессу використовуючи ім'я програми.

наскільки мені відомо -- різні шедулери -- це "надстройки" над cron...
на рахунок скриптів: kill `ps -A | grep [progname]` -- це вже не працює?.. звичайно, кілл вертае 3 помилки, так як команда ps -A... повертає стрінг типу "pid tty time progname", якщо не помиляюсь за допомогою sed цей ефект забирається...
коротше -- man grep, man kill, man ps, man linux-console-basic-administration :D
Назва: Re: Як налаштувати запуск та зупинку програми за розкладом?
Відправлено: maranoid від 2008-06-24, 05:35:04
killall <program name>  ;)
Назва: Re: Як налаштувати запуск та зупинку програми за розкладом?
Відправлено: AZCat від 2008-06-24, 09:30:41
але може виконати kill за розкладом :)

упс.. пардон..
Звичайно може. І не тільки cron ;)
Але kill це дуже грубий метод, це не дає програмі можливості зберегти ту інформацію, що на час виконання kill зберігалася у тимчасових файлах.

Окрім того, наскільки я зрозумів, треба писати окремий скрипт для знаходження PID процессу використовуючи ім'я програми.

наскільки мені відомо -- різні шедулери -- це "надстройки" над cron...
на рахунок скриптів: kill `ps -A | grep [progname]` -- це вже не працює?.. звичайно, кілл вертае 3 помилки, так як команда ps -A... повертає стрінг типу "pid tty time progname", якщо не помиляюсь за допомогою sed цей ефект забирається...
коротше -- man grep, man kill, man ps, man linux-console-basic-administration :D

упс, пардон  ::), я тут намутив.. все виявилось набагато простіше :)
kill `pgrep [progname]`
Назва: Re: Як налаштувати запуск та зупинку програм&
Відправлено: max5555 від 2008-06-24, 20:26:31
Дякую maranoid
Цитувати
killall <program name>
здається це найкращий варіант, адже ця програма безпосередньо передбачає завершення роботи саме за ім'ям.  :)

За замовчуванням, як kill, так і killall надсилають сигнал SIGTERM (-s 15), який відповідає найбільш правильному та коректному завершенню процесу зі збереженням всіх даних, принаймні так зазвичай стверджується. Тут є невеличке зауваження, адже, після надсилання цього сигналу програма не запропонує вам зберегти усі зміни, як це відбувається при завершенні через "Alt+F4", тобто немає впевненості, що процес що завершується, дійсно має можливість зберегти всю нову інформацію.