На самом деле серверы приложений как JBoss обеспечивают функциональность, подобную (но не то же как), что Вы просите: процесс Java работает в фоновом режиме, и можно дать этому команду запускать подприложение. Оборотная сторона этого подхода, однако, то, что подприложения не запускаются как отдельные процессы, таким образом, они безопасно не разделяются: если Вы разрушаете VM, или называете System.exit () или решаете прервать () все Потоки, все другие подприложения также затронуты.
Это может быть чем-то вроде запутывающей темы, потому что существуют различные реализации крона. Также было несколько ошибок, которые повредили эту функцию, и существуют также некоторые варианты использования, где она просто не будет работать, конкретно если Вы сделаете завершение работы/начальную загрузку по сравнению с перезагрузкой.
точка данных № 1
Одна такая ошибка в Debian покрыта здесь, названа: крон: задания @reboot не выполняются. Это, кажется, сделало, это - путь в Ubuntu также, которую я не могу подтвердить непосредственно.
точка данных № 2
Доказательство ошибки в Ubuntu, казалось бы, было бы подтверждено здесь в этом ТАК названные Вопросы и ответы: @reboot cronjob не выполняющийся.
выборка
комментарий № 1:.... 3) Ваша версия crond не может поддерживать @reboot, Вы использующий crond vix?... покажите результаты crontab-l-u пользователь
комментарий № 2:... это могла бы быть хорошая идея настроить его как init сценарий вместо того, чтобы полагаться на определенную версию @reboot крона.
комментарий № 3:... @MarkRoberts удалил перезагрузку и изменил 1 * * * * к */1 * * * *, проблема решена! Куда я отправляю представителю pts Mark?Спасибо!
Принятый ответ, в котором Вопросы и ответы также имели этот комментарий:
Кажется мне, Lubuntu не поддерживает @Reboot синтаксис Крона.
точка данных № 3
Поскольку дополнительное доказательство там было этим потоком, что кто-то делал попытку той же самой вещи и расстраивался, что это не работало. Это названо: Поток: Крон - @reboot задания, не работающие.
выборка
Ре: Крон - @reboot задания, не работающие
Кавычка, Первоначально Отправленная Сообщением Представления ceallred, Это уничтожает меня... Попробованный сценарий обертки. Выполнение вручную генерирует файл журнала... перезагружающий, и задание не выполняет или создает файл журнала.
Системный журнал показывает, что КРОН выполнил задание..., но снова, никакой вывод и процесс не работает. 15 июля 20:07:45 крон RavenWing [1026]: (КРОН) ИНФОРМАЦИЯ (Работающий @reboot задания) 15 июля 20:07:45 КРОН RavenWing [1053]: (ceallred) CMD (/home/ceallred/Scripts/run_spideroak.sh> /home/ceallred/Scripts/SpiderOak.log 2> &1 и)
Это, кажется, что крону не нравится команда @reboot.... Какие-либо другие идеи?
Хорошо... Частично решенный. Я отмечу этого, как решено и начну новую дискуссию с новой проблемой.....
Я думаю, что ответ был моим зашифрованным корневым каталогом, не был смонтирован, когда CRON пыталась запустить скрипт (сохраненный в/home/username/scripts). Перемещенный в/usr/scripts и прогоны задания как ожидалось.
Таким образом, теперь это, кажется, проблема spideroak. Процесс запускается, но к тому времени, когда процесс начальной загрузки закончен, он пошел. Я предполагаю катастрофический отказ по некоторым причинам.... Новый поток, чтобы спросить об этом.
Спасибо за всю справку!
После того как это выше пользователя выяснило его проблему, которую он смог получить @reboot
работа из crontab записи пользователя.
Я не совсем уверен, какая версия крона используется на Ubuntu, но это, казалось бы, указало бы, что пользователь может использовать @reboot
также, или что ошибка была исправлена в какой-то момент в последующих версиях крона.
точка данных № 4
Я протестировал на CentOS 6 следующее, и он работал.
$ crontab -l
@reboot echo "hi" > /home/sam/reboot.txt 2>&1
Я затем перезагрузил систему.
$ sudo reboot
После перезагрузки.
$ cat reboot.txt
hi
Для больше о том, как фактический механизм работает на @reboot
Я действительно сталкивался с этим сообщением в блоге, которое обсуждает внутренности. Это названо: @reboot - объяснение простого волшебства крона.
Можно поднять многословие crond
путем добавления следующего к этому конфигурационному файлу на RHEL/CentOS/Fedora основывал дистрибутивы.
$ more crond
# Settings for the CRON daemon.
# CRONDARGS= : any extra command-line startup arguments for crond
CRONDARGS="-L 2"
Допустимые уровни 0, 1, или 2. Для возвращения этого файла назад к, он - уровень входа по умолчанию, просто удаляют "-L 2"
когда Вы сделаны, отладив ситуацию.
Возьмите новую установку Ubuntu Gnome 13.10 (пользователь по умолчанию в моем случае: avanderneut).
avanderneut@uggo:~$ crontab -l
no crontab for avanderneut
avanderneut@uggo:~$ crontab -e
no crontab for avanderneut - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/ed
2. /bin/nano <---- easiest
3. /usr/bin/vim.tiny
Choose 1-3 [2]: 3
crontab: installing new crontab
avanderneut@uggo:~$ crontab -l | tail -2
# m h dom mon dow command
@reboot /home/avanderneut/bin/on_reboot
avanderneut@uggo:~$ vi /home/avanderneut/bin/on_reboot
avanderneut@uggo:~$ more !$
more /home/avanderneut/bin/on_reboot
#! /bin/bash
echo "Reboot script" > /var/tmp/xxx
avanderneut@uggo:~$ chmod 755 /home/avanderneut/bin/on_reboot
avanderneut@uggo:~$ ls /var/tmp
avanderneut@uggo:~$ /home/avanderneut/bin/on_reboot
avanderneut@uggo:~$ ls /var/tmp
xxx
avanderneut@uggo:~$ rm /var/tmp/xxx
avanderneut@uggo:~$ sudo reboot
[sudo] password for avanderneut:
И посмотрите, что после перезагружают файл /var/tmp/xxx
есть ли, хотя это там прежде не перезагружало.
Это было сделано с версией 3.0 крона.
Необходимо удостовериться, что никакие сервисные диски и т.д. не используются, который не мог бы быть доступным в то время выполнения сценария. Запустите с чего-то простого как вышеупомянутое и удостоверьтесь, что оно не имеет никакого терминального вывода, как электронная почта, вероятно, не и выполнение.
Вы могли бы aslo нуждаться в более актуальном кроне (или обновление из Linux оракула), если бы это не работало на Вас, и Вам нужна эта функция.
/dev/mapper/VolGroup00-LogVol01
раздел.
– Withheld
24.01.2014, 14:56
cron
. Необходимо, по моему скромному мнению, следовать другим маршрутом, чем crontab и @reboot для выполнения чего-то однажды на запуске как пользователь.
– Anthon
24.01.2014, 15:15
Я обнаружил, что на моей машине Ubuntu у меня нет доступа к службам dns, пока, во время @reboot time. Это не позволяло мне монтировать удаленные тома. Это банальное, но простое решение сработало:
@reboot sleep 60 && /home/me/bin/mount.sh 2>&1 >> /home/me/reboot.log
(в root cron; последние части только для отладки)
У меня тоже Mac OSX, и у меня была такая же проблема, когда мой скрипт не работал. но когда я исправил свой сценарий на
@reboot cd /home/me/ && sh myscript.sh
, у меня все заработало. убедитесь, что ваш файл оболочки исполняется, выполнив команду
chmod +x myscript.sh
Я не знаю, решали ли вы уже это, или если вам нужно какое-либо из вышеперечисленных решений, но есть и другая возможность:
если ваш каталог /home зашифрован, он может быть недоступен до тех пор, пока вы не войдете в систему, т. е. он недоступен при перезагрузке.
В этом сценарии вы можете переместить свои скрипты в другое место, например /srv или /opt или /usr/local/bin/ и т. д.
pruebas:
usuario@ubuntu :~$ touch script.sh usuario@ubuntu :~$ chmod +x script.sh
usuario@ubuntu :~$ $crontrab -e
@reboot /home/usuario/script.sh
guarda y reinicia tu pc
Я бы сказал «да» на этот вопрос. Просто были трудности с запуском cron при перезагрузке (Debian 3.10.70 )и удалось решить с помощью:
@reboot root /usr/bin/python3 /path/to/script
И символ новой строки '\n' в конце
Это содержимое файла:
/etc/cron.d/runOnReboot
Наконец, я думаю, стоит отметить реферат изman 5 crontab
... The format of a cron command is very much the V7 standard, with a number of upward-compatible extensions. Each line has five time and date fields, followed by a command, followed by a newline character ('\n'). The system crontab (/etc/crontab) uses the same format, except that the username for the command is specified after the time and date fields and before the command. The fields may be separated by spaces or tabs. The maximum permitted length for the command field is 998 characters. ...
Прежде всего, вы должны войти в систему как пользователь root:
sudo -i
Затем откройте crontab:
crontab -e
После этого добавьте свой скрипт в crontab как root, как показано ниже:
@reboot root /home/user1/Desktop/my_script
В результате я убедился, что мой скрипт работает правильно.
Примечание. :Если вы редактируете crontab под своим текущим пользователем, перезагрузка не сможет правильно вызвать ваш сценарий.
Я использую, как показано ниже
export EDITOR=gedit && sudo crontab -e
@reboot /home/usuario/script.sh
@reboot
в порядке в определенных кронах и по-видимому багги/повреждать в других. Следовательно беспорядок. – slm♦ 18.01.2014, 08:01@reboot
работавший, после того как Вы поняли, что это пыталось получить доступ к зашифрованному диску, который не был смонтирован на данный момент. – slm♦ 18.01.2014, 08:10@reboot sleep 60; <your command>
. Заключить поток в кавычки, "мое предположение - то, что @reboot директива крона работает слишком рано в процессе начальной загрузки" – pzkpfw 19.02.2015, 23:30