Можно ли добавить работу в CRON без намерения пользователя?
Сурав
да. просто напишите /etc/cron.dили вызовите crontab из вашей программы без их ведома.
Что вы имеете в виду? Если вы имеете в виду вручную добавить один программно, то да. Crontabs - это просто текстовые файлы.
10
Xorg автозапуск
Помимо сценариев запуска на системном уровне, среда вашего рабочего стола может иметь свой собственный способ автоматического запуска программ. Предполагается, что папка .config/autostartявляется нейтральным для рабочего стола способом определения записей автозапуска. /etc/xdg/autostartдля общесистемной конфигурации. Подробности о спецификации на http://developer.gnome.org/autostart-spec/ .
Для LXDE записи автозапуска также могут быть установлены в ~/.config/lxsession/LXDE/autostart.
Это немного отличается, если вам нужно запустить ваши скрипты после запуска сети. В этом случае вам следует проверить специальные сценарии после подключения, которые могут быть определены для вашего сетевого менеджера. И NetworkManager, и wicd имеют свои собственные способы указания записей автозапуска после подключения. Если сеть настроена через ifupdown, то в /etc/network/if-up.d/папке могут быть размещены сценарии последующей обработки . Но лучший подход к выполнению сценариев после подключения может быть системным (для систем, которые его поддерживают, что является большинством современных дистрибутивов).
Автозапуск как системный сервис
Если вы хотите, чтобы автозапуск не был графическим приложением, для которого требуется рабочий стол, то лучше избегать использования любых средств автозапуска, предоставляемых xorg или вашей текущей средой рабочего стола.
systemd стал повсеместным во многих современных дистрибутивах, и он предлагает много контроля и гибкости с точки зрения того, как ваши службы запускаются и как они работают.
Запуск от имени пользователя root или определенного пользователя: например, User=myuser
Перезапустите сервисы при сбое с настраиваемыми таймаутами: Restart=on-failure|on-watchdog|on-abnormal|always
Установка типа услуги: Type=simple|forking|oneshot|notify|dbus
Установите предварительные условия и зависимости при запуске, т. Е. Вы можете настроить запуск службы после запуска сети ( Wants=network-online.targetв [Unit]разделе).
Пример службы, которая запускает демон telegram-cli. Поместите это в /etc/systemd/system/tg.service.
Чтобы сэкономить лишний набор текста, вы можете добавить в свою ~/.bashrcстроку, alias sc='sudo systemctl $*'тогда вы сможете сократить команды выше, например sc start tg.
ПРИМЕЧАНИЕ. Если вы использовали, cronто имейте в виду, что записи в crontab запускаются в ограниченной среде - то же самое относится и к systemd: всегда используйте абсолютные пути и не делайте предположений относительно каких-либо определяемых переменных. Явно установите любые переменные, от которых зависят ваши скрипты. systemdне будет использовать ваш пользователь .bashrcи $PATH.
Да, можно запускать программы при запуске в Linux, определяя пути к исполняемым файлам, rc.localкоторые находятся в каталоге /etcили /etc/rc.d, например:
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
/path/to/executable
Примечание: не забудьте назначить исполняемые права, как описано в документации к файлу, т.е. Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure that this script will be executed during boot.
добавление записи в файл будет запускать программу каждый раз?
Сурав
2
Каждый раз при перезагрузке да. Если вы хотите регулярно назначать задания (каждый день, час, неделю или любую нечетную комбинацию), то cronпланировщик - ваш друг.
3
Поиск по Startup applicationsиспользованию кнопки домой
щелчок Add
Введите имя для вызова приложения (подойдет любое имя)
В Startup command boxвведите команду
Нажмите OK(вы должны увидеть вашу новую команду в списке)
щелчок Close
Проверка путем перезапуска или выхода из системы и обратно.
В каждом дистрибутиве используется каждая собственная методика начальной загрузки, поэтому нужно посмотреть документы для вашего дистрибутива. /etc/rc.local - это место, где вы можете поместить несколько автоматических скриптов, но оно действительно устарело. В настоящее время большинство систем на основе Linux используют уровни запуска или начальную загрузку systemd, так что большинство автоматически запускаемых заданий может контролироваться на должном уровне.
Рад, что вы нашли решение, не могли бы вы включить краткое описание шагов в своем ответе, просто чтобы этот ответ был более полезным, чем просто ссылка. Благодарность!
SLM
Искал способ автоматизировать и отключить трекпад при запуске. Команда, которую я ввел в Терминал, была 'sudo modprobe -r psmouse'. Это отключило бы трекпад во время текущего сеанса. Я хотел автоматизировать это при загрузке. Я провел небольшое исследование и написал скрипт, изменив файл /etc/rc.local, добавив 'sudo modprobe -r psmouse. Затем выполните следующие команды из терминала: 'sudo mv / filename /etc/init.d/' 'sudo chmod + x /etc/init.d/filename' 'sudo update-rc.d имя файла по умолчанию' Теперь сенсорная панель отключена при запуске.
Ответы:
Что-то вроде Cron ?
Обратите внимание на
@reboot
записьЭто наиболее гибкий подход, который больше всего напоминает «запланированные задачи» Windows (на самом деле лучше).
источник
/etc/cron.d
или вызовите crontab из вашей программы без их ведома.Xorg автозапуск
Помимо сценариев запуска на системном уровне, среда вашего рабочего стола может иметь свой собственный способ автоматического запуска программ. Предполагается, что папка
.config/autostart
является нейтральным для рабочего стола способом определения записей автозапуска./etc/xdg/autostart
для общесистемной конфигурации. Подробности о спецификации на http://developer.gnome.org/autostart-spec/ .Для LXDE записи автозапуска также могут быть установлены в
~/.config/lxsession/LXDE/autostart
.Это немного отличается, если вам нужно запустить ваши скрипты после запуска сети. В этом случае вам следует проверить специальные сценарии после подключения, которые могут быть определены для вашего сетевого менеджера. И NetworkManager, и wicd имеют свои собственные способы указания записей автозапуска после подключения. Если сеть настроена через
ifupdown
, то в/etc/network/if-up.d/
папке могут быть размещены сценарии последующей обработки . Но лучший подход к выполнению сценариев после подключения может быть системным (для систем, которые его поддерживают, что является большинством современных дистрибутивов).Автозапуск как системный сервис
Если вы хотите, чтобы автозапуск не был графическим приложением, для которого требуется рабочий стол, то лучше избегать использования любых средств автозапуска, предоставляемых xorg или вашей текущей средой рабочего стола.
systemd
стал повсеместным во многих современных дистрибутивах, и он предлагает много контроля и гибкости с точки зрения того, как ваши службы запускаются и как они работают.Я суммирую некоторые преимущества ( systemd может сделать намного больше ):
User=myuser
Restart=on-failure|on-watchdog|on-abnormal|always
Type=simple|forking|oneshot|notify|dbus
Wants=network-online.target
в[Unit]
разделе).Пример службы, которая запускает демон telegram-cli. Поместите это в
/etc/systemd/system/tg.service
.Теперь вы можете включить службу автозапуска:
Запустите сервис:
Остановить службу:
Проверьте статус:
Отключить службу:
Чтобы сэкономить лишний набор текста, вы можете добавить в свою
~/.bashrc
строку,alias sc='sudo systemctl $*'
тогда вы сможете сократить команды выше, напримерsc start tg
.Больше информации:
источник
Да, можно запускать программы при запуске в Linux, определяя пути к исполняемым файлам,
rc.local
которые находятся в каталоге/etc
или/etc/rc.d
, например:Примечание: не забудьте назначить исполняемые права, как описано в документации к файлу, т.е.
Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure that this script will be executed during boot.
источник
cron
планировщик - ваш друг.Startup applications
использованию кнопки домойAdd
Startup command box
введите командуOK
(вы должны увидеть вашу новую команду в списке)Close
Проверка путем перезапуска или выхода из системы и обратно.
Источник: https://help.ubuntu.com/community/AddingProgramToSessionStartup
источник
В каждом дистрибутиве используется каждая собственная методика начальной загрузки, поэтому нужно посмотреть документы для вашего дистрибутива. /etc/rc.local - это место, где вы можете поместить несколько автоматических скриптов, но оно действительно устарело. В настоящее время большинство систем на основе Linux используют уровни запуска или начальную загрузку systemd, так что большинство автоматически запускаемых заданий может контролироваться на должном уровне.
источник
Я нашел свой ответ здесь: /programming/7221757/run-automatics-program-on-startup-under-linux-ubuntu. Мне удалось создать файл / скрипт для отключения моего трекпада, пока я в моя сессия Linux Ubuntu 12.10.
источник