Как я Заставляю Этот Сценарий Python Выполняться на Начальной загрузке или Входе в систему?

Я пытаюсь выполнить сценарий Python, который запускает программное обеспечение для моего сервера. Программное обеспечение сервера должно работать в окне терминала за вводом данных пользователем и информацией о статусе.

Примечания:

  • Сервер имеет GUI
  • Ubuntu 19.10
  • структура папок: ~/parent/START_SERVER.py
  • Сценарий Python3.8 требует ввода данных пользователем от терминала

START_SERVER.py (набор как исполняемый файл):

#!/usr/bin/env python3.8
import os
# Several lines of code
os.system('java -jar server.jar')

Я попробовал:

  1. Добавление ./parent/START_SERVER.py в .bashrc в корневом каталоге
  2. Добавление python3.8 /parent/START_SERVER.py к .bashrc
  3. Добавление python3.8 ~/parent/START_SERVER.py к .bashrc
  4. Добавление вышеупомянутых команд для Запущения Приложений
  5. Создание символьной ссылки в/etc/profile.d к START_SERVER.py
  6. Выполнение всего вышеупомянутого с START_SERVER.sh, указывающим на START_SERVER.py

Поведения:

  1. 1-5 иногда результаты во всплывающем окне на входе в систему, который говорит "Действительно ли Вас, уверены, что Вы хотите продолжить двигаться?" с одной опцией: "хорошо"
  2. Когда 5 предпринят, я получаю следующий вход в систему:

Ошибка нашла при загрузке/etc/profile:

/etc/profile.d/START_SERVER.sh: строка 3: ----> Outputs line 3 of my file, finding part of a comment that says "./START_SERVER.py"<------ :No такой файл или каталог

/etc/profile.d/START_SERVER.sh: строка 6: синтаксическая ошибка около неожиданного маркера' ('

/etc/profile.d/START_SERVER.sh: строка 6: 'определение setSettings ()':

В этой точке я действительно в недоумении для того, что сделать. Как я заставляю этот сценарий работать при входе в систему?

1
задан 4 March 2020 в 23:03

1 ответ

## ~/.config/autostart ##

  1. Открытое окно терминала гнома.
  2. Создайте терминальный профиль.

    Перейдите для 'Редактирования-> Предпочтения

    Нажмите '+' рядом с 'Профилями'

    Назовите профиль. (в этом случае я буду использовать "RunComm"),

    Нажмите на вкладку 'Command'.

    Перейдите к, "Когда поле выбора" выходов команды и выбор "Будут содержать открытый терминал"

    Нажмите 'Close' для выхода

  3. В редакторе создают a *.desktop файл в ~/.config/autostart каталог.

start-server.desktop

[Desktop Entry]
Name=StartServer
Type=Application
Exec=gnome-terminal --working-directory=/home/{YOUR_USER_NAME_HERE}/parent --profile='RunComm' -e 'bash -ci ./START_SERVER.py;bash'
  1. Режим файла изменения start-server.desktop файл. сделать это исполняемым файлом. chmod +x ~/home/{YOUR_USER_NAME_HERE}/parent/start-server.desktop

**** Я не уверен, необходим ли шаг 4 даже. Старая привычка. Я не протестировал ****

При пользовательском входе в систему, который должен открыть окно терминала гнома и выполнить сценарий Python в ударе.

Systemd (при начальной загрузке)

Создайте сервисный файл единицы для сценария. Если каталог ~/.local/share/systemd/user не существует затем создают его. В терминале с mkdir -p ~/.local/share/systemd/user

В редакторе создают файл ~/.local/share/systemd/user/startserver.service

[Unit]
Description=Start server

[Service]
RemainAfterExit=no
Type=simple
ExecStart=/usr/bin/python3 /home/{YOUR_USER_NAME_HERE}/parent/START_SERVER.py

[Install]
WantedBy=default.target

Затем включите сервис

systemctl --user enable startserver.service

Это затем запустится автоматически при пользовательском входе в систему

С состоянием можно свериться

systemctl --user status startserver.service

и

journalctl --user -u startserver.service

systemd

Как установить автоматически выполненный сценарий Python Используя Systemd

2
ответ дан 17 March 2020 в 00:09

Другие вопросы по тегам:

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