Я пытаюсь выполнить сценарий Python, который запускает программное обеспечение для моего сервера. Программное обеспечение сервера должно работать в окне терминала за вводом данных пользователем и информацией о статусе.
Примечания:
START_SERVER.py (набор как исполняемый файл):
#!/usr/bin/env python3.8
import os
# Several lines of code
os.system('java -jar server.jar')
Я попробовал:
./parent/START_SERVER.py
в .bashrc в корневом каталогеpython3.8 /parent/START_SERVER.py
к .bashrcpython3.8 ~/parent/START_SERVER.py
к .bashrcПоведения:
Ошибка нашла при загрузке/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 ()':
В этой точке я действительно в недоумении для того, что сделать. Как я заставляю этот сценарий работать при входе в систему?
Создайте терминальный профиль.
Перейдите для 'Редактирования-> Предпочтения
Нажмите '+' рядом с 'Профилями'
Назовите профиль. (в этом случае я буду использовать "RunComm"),
Нажмите на вкладку 'Command'.
Перейдите к, "Когда поле выбора" выходов команды и выбор "Будут содержать открытый терминал"
Нажмите 'Close' для выхода
В редакторе создают 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'
start-server.desktop
файл. сделать это исполняемым файлом. chmod +x ~/home/{YOUR_USER_NAME_HERE}/parent/start-server.desktop
**** Я не уверен, необходим ли шаг 4 даже. Старая привычка. Я не протестировал ****
При пользовательском входе в систему, который должен открыть окно терминала гнома и выполнить сценарий Python в ударе.
Создайте сервисный файл единицы для сценария. Если каталог ~/.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
Как установить автоматически выполненный сценарий Python Используя Systemd