Запис основних системних файлів обслуговування


103

Я розробляю додаток Nodejs, з яким користувач взаємодіє через HTTP на localhost. Тут практично немає параметрів, і демон практично не має залежностей, і його потрібно просто підписати на час входу.

Я хотів би дотримуватися ідіоми на кожній платформі для запуску сценаріїв, а це означає Upstart в Ubuntu та systemd на Fedora.

  • Чи є хороші підручники для написання системних файлів?
  • Чи слід знати про «найкращі практики»?

Я знайшов ці ресурси:

Я здебільшого шукаю подібний API, а також базовий формат, який слід дотримуватися.


На сторінці Wiki Linux Arch Linux про systemd є цікавий розділ про написання службових файлів.
Руді Матела

> man systemd.service>> man systemd.unit
truezion

Відповіді:


29

Я б почав із сторінок керівництва Systemd . Вони являють собою всебічний ресурс системи та послуг.

Існує також FAQs Freedesktop Systemd .


43
Сторінки man будуть корисні (хоч би хотілося, щоб це було чистіше), але чи є базовий підручник із системними файлами? Як і які деталі необхідні, які деталі рекомендовані, а які - необов’язкові. Чоловічі сторінки, здається, припускають, що я вже є експертом у системних файлах, що я не є.
beatgammit

Не те, що мені відомо, на жаль. Напевно, існує припущення, що якщо ви пишете інциденти, ви вже знаєте, як писати інциденти. Подивіться через скрипти Arch і вибрати той , який схожий на те , що вам потрібно: archlinux.org/packages/community/i686/systemd
jasonwryan

1
Дякую! З вашою допомогою та знайденим у мене блогом я зміг отримати основний робочий стан. Сидд здається набагато приємнішим, ніж вискок або старий systemv init демон.
битгаміт

49
Хто встигає там, той живе для того, щоб почати з цього. Я маю на увазі, якщо ви знаєте, що ви робите, це чудовий довідник, але свята корова, сторінки керівництва є складними.
Джонатан Комар

1
@ macmadness86 ОП шукала авторитетного джерела (див. останній пункт); для більшості потреб прочитання службового файлу для подібного додатка та консультації з певними частинами manсторінки буде більш ніж достатньо для того, щоб потрапити до вас. Вони насправді досить прості.
Jasonwryan

180

Наступний приклад натхненний цим посиланням, яке насправді не згадує всі кроки та перераховано лише для того, щоб зарахувати джерело: http://patrakov.blogspot.com/2011/01/writing-systemd-service-files.html

Крок 1 : Я створив цей файл (розташування примітки), який по суті запускає процес bash з розширеним аргументом. Ви можете запустити власну команду, яка може відрізнятися від bash.

[root@y500-fedora ~]# cat /etc/systemd/system/foo.service 
[Unit]
Description=foo

[Service]
ExecStart=/bin/bash -c "while true; do /bin/inotifywait -qq --event close_write /sys/class/backlight/acpi_video0/brightness; su myusername -c '/bin/xbacklight -display :0 -set $(cat /sys/class/backlight/acpi_video0/brightness)'; done"

[Install]
WantedBy=multi-user.target

Крок 2 :

Перезавантажити systemd:

systemctl daemon-reload

Почніть нову послугу:

systemctl enable foo

(так само ви можете disable)

(необов’язково) Крок 3 : Він повинен запускатися автоматично при наступному перезавантаженні в багатокористувацький режим (запустити рівень 3), але якщо ви хочете запустити його відразу:

systemctl start foo
systemctl status foo # optional, just to verify

Оновлення: Для повноти слід додати, що, здається, у ubuntu bionic є дуже ретельна сторінка. RTFM тут


57
Дякуємо, що опублікували швидкий підручник, а не просто посилання на сторонні сторінки чоловіка!
Toby J

2
systemctl має ярлик команди cat, для довідки.
Енді Беттісворт

Що таке ярлик команди cat? Як спосіб створення та редагування системних файлів управління, не вводячи весь шлях?
JpaytonWPD

які дозволи в цьому ідеалі мають мати цей файл?
knocte

2
Як повідомляє сторінка man systemd.unit man, ви повинні розмістити його /etc/systemd/system. / usr / lib / systemd - це те, куди належні пакети розповсюдження розміщують свої файли.
wbkang

4

2
Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
Стівен Рауч

1
@StephenRauch Я знаю, що прості посилання не дуже вітаються, але це величезна тема, і це не просто узагальнити у відповідь.
каракал

Це був найчитабельніший посібник, який я знайшов. Це хороша відповідь. :-)
добре

DigitalOcean також має досить вичерпний набір навчальних посібників та супровідну
irbanana
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.