我有一台运行 raspbian(debian 9.3)的 Raspberry Pi,直到今晚都没有问题。我使用 nginx 来提供 https 站点,我需要使用 certbot 更新我的证书,所以我停止了 nginx。但是当我再次启动它时,我得到了以下结果:
pi@framboise3:~ $ sudo service nginx start
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.
pi@framboise3:~ $ systemctl status nginx.service
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2018-01-31 21:34:49 UTC; 10s ago
Docs: man:nginx(8)
Process: 1791 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)
janv. 31 21:34:49 framboise3 systemd[1]: Starting A high performance web server and a reverse proxy server...
janv. 31 21:34:49 framboise3 nginx[1791]: nginx: [emerg] open() "/etc/nginx+ngijx.conf" failed (2: No such file or directory)
janv. 31 21:34:49 framboise3 nginx[1791]: nginx: conbiguration file /etc/nginx+ngijx.conf test failed
janv. 31 21:34:49 framboise3 systemd[1]: nginx.service: Control process exited, code=exited status=1
janv. 31 21:34:49 framboise3 systemd[1]: Failed to start A high performance web server and a reverse proxy server.
janv. 31 21:34:49 framboise3 systemd[1]: nginx.service: Unit entered failed state.
janv. 31 21:34:49 framboise3 systemd[1]: nginx.service: Failed with result 'exit-code'.
请注意两个非常奇怪的项目:“配置文件“和文件”/etc/nginx+ngijx.conf“看起来有点像预期的 /etc/nginx/nginx.conf。当然提到的那个并不存在。
到底发生什么事了?
apt-get remove 和 install nginx 无法解决问题。我在 /etc 和 /var/lib/nginx/ 中均未发现字符串“ngijx”的出现(不知道这是否相关)。
除此之外,我没有发现系统有任何异常。有人告诉我可能是 SD 卡有缺陷,但为什么重新安装软件包不能解决问题?我可以测试我的卡是否有缺陷吗?谢谢
答案1
在回复 Seth 时,我查找了详细信息,并进一步解决了这个问题。首先我注意到了这一点:
pi@framboise3:/etc $ strings /usr/sbin/nginx |grep ngij
/etc/nginx+ngijx.conf
这意味着该文件(ELF 32 位可执行文件)以某种方式损坏。
然后我跑了:
pi@framboise3:/etc $ dpkg -S /usr/sbin/nginx
nginx-full: /usr/sbin/nginx
并且了解到重新安装“nginx”不是正确的软件包。重新安装 nginx-full 就成功了。但它是如何损坏的仍然是个谜,我想我会仔细检查我的备份系统……