2

Как можно, чтобы определенный скрипт Python всегда запускался в моей системе автоматически при запуске системы до тех пор, пока я не выключился?

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

Я использую Ubuntu 10.04, если это имеет значение.

3 ответа3

6

поместить скрипт в /etc/init.d/? http://embraceubuntu.com/2005/09/07/adding-a-startup-script-to-be-run-at-bootup/

1

Вы можете (под Gnome) перейти в Система >> Настройки >> Сессии и добавить свой скрипт здесь.

1

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

Тем не менее, вот несколько способов запуска скриптов:

  • В пользовательском crontab используйте «@reboot» для указания времени, например: @reboot /path/to/script Это заставит его работать от имени указанного пользователя и будет запускаться во время загрузки системы и работать до тех пор, пока он не умрет или пока Система выключена.
  • Зайдите в приложение "Настройки" (XFCE: Приложения -> Настройки -> Настройки Xfce 4, GNOME: Система -> Настройки и т.д.) И измените приложения, запущенные для вашего сеанса. Вы можете добавить скрипт для запуска как часть сеанса. Это запустится и запустится во время вашего сеанса, но не будет перезапущено, если сценарий умрет.
  • Сценарий сеанса может быть обернут сценарием, который запускает программу Python в фоновом режиме, чтобы он продолжал работать после выхода из сеанса, но затем вы должны убедиться, что, если пользователь выходит из системы и возвращается, что он не запускается несколько копий.
  • Если вы хотите, чтобы он запускался из сеансов оболочки через SSH и т. П., А не из сеанса X Windows, вы можете поместить его в .profile (.bash_profile, .zprofile и т.д.). Но вам нужно создать фон, как указано выше, и убедиться, что несколько копий не запущены.
  • Вы можете просто поместить его в /etc/rc.local и запустить его как пользователь (через "su"), но это начнется во время загрузки, а не во время входа в систему. Лично я бы порекомендовал cront+@ перезагрузиться по этому поводу.
  • Вы можете создать сценарий upstart в "/etc /init", это приведет к его запуску во время загрузки, как указано выше, но вы можете перезапустить сценарий, если он по какой-либо причине умрет. Это лучший вариант, если вам нужно убедиться, что он продолжает работать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .