Платформа 8.3 → Ubuntu 16.04: PostgreSQL, версия 10.3-3.1C вопросы к разработчикам!
Вариант от Самарина Александра (Эника, Ивантеевка)
За что Александру огромное спасибо!
$ sudo nano /etc/systemd/system/postgres.service
[Unit]
Description=PostgreSQL database server
After=network.target
[Service]
Type=forking
TimeoutSec=120
User=postgres
Group=postgres
Environment=PGROOT=/var/lib/postgres
SyslogIdentifier=postgres
PIDFile=/var/lib/postgres/data/postmaster.pid
RuntimeDirectory=postgresql
RuntimeDirectoryMode=755
ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGROOT}/data
ExecStart= /usr/bin/pg_ctl -s -D ${PGROOT}/data start -w -t 120
ExecReload=/usr/bin/pg_ctl -s -D ${PGROOT}/data reload
ExecStop= /usr/bin/pg_ctl -s -D ${PGROOT}/data stop -m fast
# Due to PostgreSQL's use of shared memory, OOM killer is often overzealous in
# killing Postgres, so adjust it downward
OOMScoreAdjust=-200
# Additional security-related features
PrivateTmp=true
ProtectHome=true
ProtectSystem=full
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
Сохранить.
Команды:
$ sudo systemctl daemon-reload # запускать после изменений файла
$ sudo systemctl start postgres.service
$ sudo systemctl stop postgres.service
$ sudo systemctl restart postgres.service
$ sudo systemctl status postgres.service
Можно сравнить с shell-скриптом на любом дистрибутиве. Выиграет, думаю, только Gentoo и FreeBSD за счет огромных openrc и rc.subr. Но в них все равно есть отдельный init с костыльным inittab и runlevels, который поддерживается другими людьми, отдельно supervisord и daemon-start-stop, forever и т.п.
В случае 1C сервис на systemd адекватно отрабатывает любые действия с сервером 1С. Описание на 20 строк, все очевидны. А собственный скрипт от 1С не позволяет включить отладку и перезапустить сервер, т.к. при смене флагов он не может найти и убить процессы. Приходится сначала останавливать сервер, потом менять флаги, потом запускать сервер.
Я тоже не в восторге от pssssshulseaudio и systemd (в основном от сетевой части и systemd-nspawn), но свою задачу он выполняет и быстрее шелла.
А "ОС в ОС" нам и так хватает: firefox, chrome, grub и сама 1С.
Вариант от Самарина Александра (Эника, Ивантеевка)
За что Александру огромное спасибо!
$ sudo nano /etc/systemd/system/postgres.service
[Unit]
Description=PostgreSQL database server
After=network.target
[Service]
Type=forking
TimeoutSec=120
User=postgres
Group=postgres
Environment=PGROOT=/var/lib/postgres
SyslogIdentifier=postgres
PIDFile=/var/lib/postgres/data/postmaster.pid
RuntimeDirectory=postgresql
RuntimeDirectoryMode=755
ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGROOT}/data
ExecStart= /usr/bin/pg_ctl -s -D ${PGROOT}/data start -w -t 120
ExecReload=/usr/bin/pg_ctl -s -D ${PGROOT}/data reload
ExecStop= /usr/bin/pg_ctl -s -D ${PGROOT}/data stop -m fast
# Due to PostgreSQL's use of shared memory, OOM killer is often overzealous in
# killing Postgres, so adjust it downward
OOMScoreAdjust=-200
# Additional security-related features
PrivateTmp=true
ProtectHome=true
ProtectSystem=full
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
Сохранить.
Команды:
$ sudo systemctl daemon-reload # запускать после изменений файла
$ sudo systemctl start postgres.service
$ sudo systemctl stop postgres.service
$ sudo systemctl restart postgres.service
$ sudo systemctl status postgres.service
Можно сравнить с shell-скриптом на любом дистрибутиве. Выиграет, думаю, только Gentoo и FreeBSD за счет огромных openrc и rc.subr. Но в них все равно есть отдельный init с костыльным inittab и runlevels, который поддерживается другими людьми, отдельно supervisord и daemon-start-stop, forever и т.п.
В случае 1C сервис на systemd адекватно отрабатывает любые действия с сервером 1С. Описание на 20 строк, все очевидны. А собственный скрипт от 1С не позволяет включить отладку и перезапустить сервер, т.к. при смене флагов он не может найти и убить процессы. Приходится сначала останавливать сервер, потом менять флаги, потом запускать сервер.
Я тоже не в восторге от pssssshulseaudio и systemd (в основном от сетевой части и systemd-nspawn), но свою задачу он выполняет и быстрее шелла.
А "ОС в ОС" нам и так хватает: firefox, chrome, grub и сама 1С.
Комментариев нет:
Отправить комментарий