/etc/profile
выполняется при запуске нового сеанса оболочки, поэтому, если вы не запустите хотя бы один сеанс оболочки, ваш скрипт не будет запущен.Более того, он будет прерван, когда сессия прекратится, и если вы запустите несколько сеансов, сценарий также будет запущен для каждого сеанса, что, вероятно, не то, что вы хотите.
В зависимости от вашей системы инициализации вам нужно будет создатьSysVinit или системный сервис.Предполагая, что вы используете системный дистрибутив (который в настоящее время используется по умолчанию для большинства дистрибутивов Linux), вам нужно сделать следующее:
Шаг 1: Поместить ваш скрипт в место, из которого он будет выполняться службой,Например, /usr/local/bin/
может быть хорошим выбором.
Шаг 2: Создать служебный файл.Предполагая, что вы хотите назвать его myscript.service
, создайте файл по следующему пути /etc/systemd/system/myscript.service
со следующим содержимым:
[Unit]
Description=myscript
[Service]
ExecStart="/usr/bin/python /usr/local/bin/myscript.py"
[Install]
WantedBy=multi-user.target
Шаг 3: Перезагрузите демон systemd и включите вашу службу:
systemctl daemon-reload
systemctl enable myscript
Теперь после перезапуска вашей системы ваш сервис должен автоматически запуститься.Вы можете проверить это с помощью команды systemctl status myscript
, которая возвращает статус сервиса.