Как сделать выполнение приложения автоматически?

Помните, что Unix был первоначально разработан как многопользовательская система, где несколько человек использовали тот же физический компьютер. (В отличие от этого, сегодня, где большинство систем Unix используется только одним человеком и многопользовательскими учетными записями, должны только ограничить уязвимости.)

Таким образом, исходная причина crontabs в расчете на пользователя состояла в том так, чтобы каждый человек мог запланировать задания, которые они хотели выполняемый периодически (не давая им полномочия отредактировать систему crontab и таким образом вмешаться в задания других людей). Но теперь, это должно, прежде всего, только управлять полномочиями выполняемых заданий.

Таким образом да, после того как crontab сохраняется, задания будут работать, зарегистрирован ли тот пользователь (или когда-либо входил в систему). Основной демон крона выполняет crontabs в расчете на пользователя, а также систему crontab.

1
31.05.2013, 01:35
2 ответа

Это походит cron решил бы то, что Вы пытаетесь сделать.

Общий формат crontab выглядит примерно так, с каждым столбцом, представляющим минуту, час, день месяца, месяца и дня недели, соответственно.

30 * * * * /home/user/updates.sh

Крон также поддерживает несколько предопределенных записей такой как @weekly, @daily и среди них @reboot.

Можно или отредактировать crontab в то время как вошли пользователь Вы хотите запустить скрипт от использования crontab -e или как корень crontab -u username -e отредактировать другого пользователя crontab.

После того как Вы сделали, чтобы Ваш редактор открылся, добавьте:

@reboot /usr/bin/myapp > /dev/null 2>&1

В следующий раз Вы перезагружаете машину, /usr/bin/myapp будет выполнен пользователем, в crontab которого Вы помещаете его.

2
27.01.2020, 23:29

Сценарий установки пакета касающиеся файлы в корневых каталогах является определенным нет - нет. Вы, очень вероятно, разрушите конфигурацию пользователя, и она может или не может работать (что, если у пользователя есть zsh или tcsh как его оболочка входа в систему?), и это только запрашивает пользователей, корневой каталог которых вокруг в то время, когда пакет установлен.

Чрезвычайно странно запустить приложение каждый раз, когда пользователь входит в систему. Это до каждого пользователя, чтобы выбрать, хочет ли он запустить Ваше приложение.

Если необходимо выполнить код, когда пользователь входит в систему, изменяя /etc/profile Ваш лучший выбор. Если Ваше распределение имеет каталог /etc/profile.d, отбросьте файл там вместо изменения /etc/profile. Если необходимо изменить /etc/profile, очень бойтесь разрушать настройки системного администратора. Обычно все Вы выполнили бы profile должен установить переменную среды.

Вы утверждаете, что, “Если я делаю это, этот путь, myapp выполняется корнем”. Это - просто ложь: /etc/profile выполняется пользователем, который входит в систему.

Повторить, что необходимо, вероятно, сделать, говорят пользователям, “если Вы хотите запустить мое приложение, работать myapp управляйте или выбор ‘Мое Приложение’ из меню или щелчка”, ничто больше. Обязательно предоставьте запись меню пользователям GUI. Чтобы постараться не играть с переменными среды, предоставьте сценарий выполнения вызова, который устанавливает любую необходимую переменную среды.

1
27.01.2020, 23:29

Теги

Похожие вопросы