Тема: автоматизація створення сервісів Archlinux
назва файлу: create_service.py
код:
import os
import sys
def create_service(name, command):
# Створити файл служби у директорії /etc/systemd/system
filename = f"/etc/systemd/system/{name}.service"
with open(filename, "w") as f:
f.write(f"""[Unit]
Description={name}
[Service]
Type=simple
ExecStart={command}
[Install]
WantedBy=multi-user.target
""")
# Перезавантажити демон systemd
os.system("sudo systemctl daemon-reload")
# Додати службу до списку служб, які повинні запускатися при завантаженні системи
os.system(f"sudo systemctl enable {name}")
def start_service(name):
# Запустити службу
os.system(f"sudo systemctl start {name}")
# Перевірити, чи скрипт запущений з правами sudo
if not os.geteuid() == 0:
print("Цей скрипт повинен бути запущений з правами sudo!")
sys.exit(1)
# Отримати аргументи командного рядка
if len(sys.argv) < 3:
print("Використання: sudo python create_service.py <назва служби> <команда для виконання>")
sys.exit(1)
service_name = sys.argv[1]
service_command = " ".join(sys.argv[2:])
create_service(service_name, service_command)
start_service(service_name)
спосіб використання і так зрозумілий, якщо ви не бачите його в коді, напишіть
python3 create_service.py
вилізе підказка, і вас "викине" з скрипта
скрипт запускати від sudo, якщо не зробите цього - теж підказка вилізе
якщо ви не впевнені що зможете ввести правильно з пешого разу - можете додати перевірку
просто, нехай цей код тут лежить, може колись до нього прийду і подякую собі теперішньому
якщо хтось знає кращий спосіб, буду вдячний
...хоч я і не зовсім впевнений що він буде працювати коректно))
(це не ubuntu, rc-local.service тут немає)