У мене є робота, яка працює назавжди в той момент, коли вона починається. Тому я хочу запустити його лише один раз після введення його у файл "crontab -e" та збереження його (або) кожного разу, коли перезавантаження відбудеться.
Як цього досягти?
У мене є робота, яка працює назавжди в той момент, коли вона починається. Тому я хочу запустити його лише один раз після введення його у файл "crontab -e" та збереження його (або) кожного разу, коли перезавантаження відбудеться.
Як цього досягти?
Відповіді:
Якщо ви хочете, щоб команда була запущена один раз на більш пізню дату, використовуйте atкоманду.
Якщо ви хочете, щоб команда була запущена один раз під час завантаження системи, правильним рішенням є використання будь-якого:
@rebootспеціальним префіксом (див. manpage)Останнє є єдиним варіантом для некорінного користувача.
at now
@reboot.
Ви можете використовувати (1), щоб виконати роботу в якийсь момент майбутнього. Однак, якщо ви хочете щось запустити під час завантаження, і воно залишиться запущеним само собою, можливо, ви хочете записати його /etc/init.d/? Це дозволить вам запустити його під час завантаження.
kill(якщо ви отримали дозволи на це, що ви робите для власних процесів). Створити сценарій init дуже просто. Шукайте /etc/init.d/сценарій, який не дуже довгий, і моделюйте його після нього, або Google making init scripts (your distribution).
/etc/init.d/skeletonна openSuSE), який ви можете адаптувати для свого використання.
Робота, яка працює лише один раз і працює назавжди, поки ти не скажеш їй померти, називається "демон". Зазвичай вони запускаються через init-скрипти в /etc/init.d/.
Якщо ваша робота закінчується в якийсь момент і її можна вважати одноразовою роботою, то ви можете поглянути на команду at. Наприклад, якщо я хотів запустити команду find в 22:00 сьогодні ввечері, і тільки це я зробив би:
$ at 10PM
at> find /root > /root/find_results.list
at> <EOT>
job 3 at 2010-02-10 22:00
Погляньте на команду at