Systemd service для Ghost

Довольно стандартный файл конфигурации. Какие-то хитрые возможности systemd не используются. Тип демона simple. Запускается от имени пользователя ghost и группы ghost. Движок Ghost расположен в директории /var/www/ghost.

Создаем пользователя:

1
sudo adduser --shell /bin/bash --gecos 'User for ghost application' ghost  

Некоторые пункты:

  • Restart=always - нужен для того, чтобы если движок Ghost упадёт, то systemd перезапустил его
  • PrivateTmp=true - сделать временные файлы, которые создаются Ghost видимыми только для него, остальные процессы ничего не будут знать о них. Добавил на всякий случай.

Файл /etc/systemd/system/ghost.service:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
[Unit]
Description=Ghost blog  
After=network.target

[Service]
Type=simple
WorkingDirectory=/var/www/ghost
User=ghost
Group=ghost
ExecStart=/usr/bin/npm start --production /var/www/ghost
ExecStop=/usr/bin/npm stop /var/www/ghost
Restart=always
SyslogIdentifier=ghost
Environment=NODE_ENV=production
StandardOutput=syslog
StandardError=syslog
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Запуск:

1
2
3
systemctl daemon-reload
systemctl enable ghost
systemctl start ghost

Чуть не забыл. Вы можете почитать меня в твиттере или телеграме, посмотреть мои фотографии в инстаграме, подружиться со мной в PSN, позлить меня на твиче пока я играю или посмотреть в записи. А самые лучшие человеки могут меня поддержать деньгой.