У мене є робота, яка працює назавжди в той момент, коли вона починається. Тому я хочу запустити його лише один раз після введення його у файл "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