我还有一个问题opensmtpd
在 Ubuntu 18.04 上...
apt-get install opensmtpd
...安装版本6.0.3p1-1build1
,但存在一个问题:
systemdopensmtpd.service
似乎认为这ExecStop=/usr/sbin/smtpctl stop
将停止服务。然而,smtpctl stop
它会产生一个非零的退出代码,并且其输出也暗示它不知道该子命令:
possibilities are:
discover
encrypt
pause
resume
show
log
monitor
profile
remove
schedule
trace
uncorrupt
unprofile
untrace
update
那是2018年3月,距今已有一年半多了。
我看到确实安装了较新的版本Ubuntu 18.10和19.04....那么为什么这个版本以及此后的更新版本还没有进入 18.04 呢?
怎么会这样呢?
答案1
这里有两个选择:
您必须向启动板编写全面的错误报告,以便
apport-bug opensmtpd
通知开发人员可能存在的问题。您必须从迪斯科在仿生的:
cd ~/Downloads wget http://archive.ubuntu.com/ubuntu/pool/universe/o/opensmtpd/opensmtpd_6.0.3p1-5_amd64.deb sudo apt-get install ./opensmtpd_6.0.3p1-5_amd64.deb
但是这个手动安装的软件包将不会收到安全更新。
更新:我已经举报错误 1840586为您提供反向移植/SRU(稳定版本升级)请求。
答案2
同时,我研究了 Bionic 和 Discoopensmtpd
软件包之间的差异,并得出结论:默认ExecStop
行为就systemd
足以使得opensmtpd
确实停止。
diff -p ./{bionic,disco}/lib/systemd/system/opensmtpd.service
:
*** ./bionic/lib/systemd/system/opensmtpd.service 2018-01-16 17:18:40.000000000 +0000 --- ./disco/lib/systemd/system/opensmtpd.service 2018-03-18 16:16:45.000000000 +0000 *************** After=network.target *** 6,12 **** [Service] Type=forking ExecStart=/usr/sbin/smtpd ! ExecStop=/usr/sbin/smtpctl stop [Install] WantedBy=multi-user.target --- 6,12 ---- [Service] Type=forking ExecStart=/usr/sbin/smtpd ! ExecStop=/bin/kill -15 $MAINPID [Install] WantedBy=multi-user.target
据我所知,disco 的ExecStop=/bin/kill -15 $MAINPID
线路只是systemd
明确表示的默认行为。
所以。这是我暂时采用的临时解决方法,我们等待并希望@N0rbert 的错误报告领取:
sudo apt-get install opensmtpd
sudo systemctl edit opensmtpd.service
...然后将其复制/粘贴到编辑器中:
[Service] ## While waiting for [this bug](https://bugs.launchpad.net/ubuntu/+source/opensmtpd/+bug/1840586) ## to be fixed, work around it as follows: ## ## Clear `ExecStop` to get the [default systemd behaviour](https://www.freedesktop.org/software/systemd/man/systemd.service.html#ExecStop=) ## back; ## ExecStop= # vim: syntax=systemd expandtab shiftround shiftwidth=4 softtabstop=4 tabstop=4
...最后,重新加载并重新启动:
sudo systemctl restart opensmtpd
证明它有效:
journalctl -u opensmtpd
... Aug 19 10:10:13 ip-10-0-2-210 systemd[1]: Stopping OpenSMTPD SMTP server... Aug 19 10:10:13 ip-10-0-2-210 smtpd[2163]: Exiting Aug 19 10:10:13 ip-10-0-2-210 systemd[1]: Stopped OpenSMTPD SMTP server. Aug 19 10:10:13 ip-10-0-2-210 systemd[1]: Starting OpenSMTPD SMTP server... Aug 19 10:10:13 ip-10-0-2-210 smtpd[5987]: info: OpenSMTPD 6.0.3-portable starting Aug 19 10:10:13 ip-10-0-2-210 systemd[1]: Started OpenSMTPD SMTP server.
希望有人会发现这很有用。