Користувальницькі налаштування

Налаштування сайту


systemd

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Наступна ревізія
Попередня ревізія
systemd [2015/03/17 22:47] – створено wombatsystemd [2017/06/29 21:02] (поточний) – e-mail on failure wombat
Рядок 1: Рядок 1:
 ====== systemd ====== ====== systemd ======
 +
 +====== Настройка ======
  
 ===== Службы ===== ===== Службы =====
Рядок 32: Рядок 34:
  
   sudo systemctl start updatedb.timer   sudo systemctl start updatedb.timer
 +
 +
 +===== Настройка времени =====
 +
 +  timedatectl list-timezones
 +  sudo timedatectl set-timezone Europe/Kiev
 +
 +((https://wiki.archlinux.org/index.php/Time))
 +
 +
 +===== Уведомление на e-mail =====
 +
 +Чтобы получать уведомления на электронную почту об ошибке запуска некоторой службы systemd, нужно((https://wiki.archlinux.org/index.php/Systemd/Timers#MAILTO)) сделать следующее:
 +
 +**1.** Создать скрипт отправки сообщения (пример дан для ''bsd-mailx''; для ''sendmail'' можно посмотреть [[https://wiki.archlinux.org/index.php/Systemd/Timers | здесь]]).
 +
 +<file bash "/usr/local/bin/systemd-email">
 +#!/bin/bash
 +
 +export LANG=C
 +/usr/bin/mail -a "Content-Transfer-Encoding: 8bit" -a "Content-Type: text/plain; charset=UTF-8" -s "$2" $1 <<ERRMAIL
 +
 +$(systemctl status --full "$2")
 +ERRMAIL
 +</file>
 +
 +**2.** Создать службу systemd для отправки сообщения.
 +
 +<file ini "/etc/systemd/system/status-email-admin@.service">
 +[Unit]
 +Description=status email for %i to admin
 +
 +[Service]
 +Type=oneshot
 +ExecStart=/usr/local/bin/systemd-email admin@server.org %i
 +#User=nobody
 +User=root
 +Group=systemd-journal
 +</file>
 +
 +Здесь "''admin@server.org''" -- это e-mail, на который нужно высылать сообщение. Пользователь "''root''" нужен для случая, когда ''systemctl'' не запускается от других пользователей. В противном случае лучше использовать пользователя "''nobody''".
 +
 +**3.** Если всё настроилось и работает, то нужно добавить следующую строку в раздел ''[Unit]'' файлов служб systemd, при ошибке запуска которых требуется высылать письмо:
 +
 +  OnFailure=status-email-admin@%n.service
 +
 +
 +====== Создание ======
 +
 +==== Службы ====
 +
 +<file ini '/etc/systemd/system/mount-data.service'>
 +[Unit]
 +Description=Mount USB HDD
 +
 +[Service]
 +Type=oneshot
 +RemainAfterExit=yes
 +
 +#PIDFile=/run/thttpd.pid
 +#ExecStart=/usr/bin/thttpd -D -C /etc/thttpd.conf
 +ExecStart=/usr/local/bin/mount_data.sh
 +#ExecReload=
 +ExecStop=/usr/local/bin/mount_data.sh unmount
 +#Restart=always
 +
 +# No USB HDD attached
 +RestartPreventExitStatus=1
 +
 +
 +#[Install]
 +#WantedBy=multi-user.target
 +</file>
 +
 +<file bash '/usr/local/bin/mount_data.sh'>
 +#!/bin/bash
 +
 +if [ "$1" == "unmount" ]
 +then
 +    MOUNT=`mount | grep '/mnt/data'`
 +    if [ -n "$MOUNT" ]
 +    then
 +        echo "Unmounting /mnt/data"
 +        umount /mnt/data
 +    else
 +        echo "ERROR: /mnt/data is not mounted."
 +    fi
 +else
 +    if [ -e /dev/sda4 ]
 +    then
 +      echo "Mounting /dev/sda4 as /mnt/data"
 +      mount /mnt/data
 +    else
 +      echo "ERROR: No HDD."
 +      exit 1
 +    fi
 +fi
 +</file>
 +
 +<file systemd '/etc/systemd/system/multi-user.target.wants/transmission.service'>
 +[Unit]
 +...
 +Requires=mount-data.service
 +After=mount-data.service
 +...
 +</file>
 +
 +
 +
 +
 +
 +===== Ссылки =====
 +
 +http://www.freedesktop.org/software/systemd/man/systemd.service.html
 +
 +http://www.freedesktop.org/software/systemd/man/systemd.unit.html
 +
 +https://wiki.archlinux.org/index.php/Systemd#Writing_unit_files
systemd.1426632446.txt.bz2 · Востаннє змінено: повз wombat