Служба Systemd останавливается при выходе пользователя - debian 9 stretch

Итак, я смог решить свою проблему, как я предлагал в конце своего вопроса, но я также пришел к выводу, что избегание виртуальных доменов может быть правильным путем.

Первое, первоначально предложенное решение: удалить ссылки на a.com из файла virtual.

virtual
-------
#postmaster@a.com  postmaster
#@a.com            userA
postmaster@b.com  postmaster
@b.com            userB
postmaster@c.org  postmaster
@c.org            userC

После того, как я это сделал, виртуальные переводы для b.com и c.org выдали userB@a.com и userC@a.com, как и ожидалось, а поскольку a. com является одной из записей mydestination, postfix/local послушно доставил почту пользователяB на /var/mail/userB и пользователяC на /var/mail/userC.

Конечно, как я и опасался в своем первоначальном вопросе, он все равно делает вывод, что a.com - это конечный домашний домен всех этих пользователей, что кажется мне странным. Очевидным решением, в таком случае, является не использовать виртуальные домены вообще - весь смысл виртуальных доменов в том, чтобы принимать почту для адресов, которые не являются реальными пользователями Unix в системе. Но поскольку все мои универсальные пользователи являются реальными пользователями Unix в системе, я должен просто использовать локальные псевдонимы:

/etc/aliases
------------
admin: postmaster
www: postmaster
@a.com: userA
@b.com: userB
@c.com: userC

Я все еще могу иметь универсальные адреса без использования виртуальных доменов вообще.

1
16.11.2018, 03:01
2 ответа

Я думаю, что эта служба не должна работать для определенного пользователя/группы (teampeak ).

Для начала сделайте резервную копию всех ваших файлов (служебный файл и т. д. )и отключите его:

# systemctl disable teamspeak.service

Также удалите физический файл teampeak.service, который вы скопировали в системе.

подключитесь по ssh к вашему серверу как пользователь rootи попробуйте это:

Отредактируйте файл teamspeak.service:

[Unit]
Description=TeamSpeak 3 Server
After=network.target

[Service]
ExecStart=/teamspeak/ts3server_startscript.sh start
ExecStop=/teamspeak/ts3server_startscript.sh stop
RestartSec=1s


[Install]
WantedBy=default.target

Затем установите сервисный модуль systemdи включите его, чтобы он выполнялся во время загрузки:

# cp  teamspeak.service /etc/systemd/system/
# chmod 0664 /etc/systemd/system/teamspeak.service
# systemctl daemon-reload
# systemctl enable teamspeak.service

запустить службу:

# systemctl start teamspeak.service

найдите ответ OK (зеленая точка ).

, чтобы узнать, существует ли служба или настроена:

# systemctl list-unit-files --type=service | grep teamspeak

узнать об услуге:

# service teamspeak status

Примечание :URL ссылки на systemd-https://wiki.debian.org/systemd

0
27.01.2020, 23:32

Вы можете попробовать настроить systemd так, чтобы он не убивал пользовательские процессы при выходе из системы для разыскиваемого пользователя:

sudo loginctl enable-linger teamspeak
4
27.01.2020, 23:32

Теги

Похожие вопросы