PHP -fpm 服务启动失败,但是手动启动可以?

2022-04-10 10:14:33 +08:00
 azev
要启用一个扩展插件 修改了 php.ini 后 systemctl restart php74-php-fpm 一直不能成功
看 journalctl -u php74-php-fpm 也没有具体信息
就一行红字 Failed to start The PHP FastCGI Process Manager.
于是打算用./php-fpm -y /etc/opt/remi/php74/php-fpm.conf 来试试能不能抓到报错信息
结果正常启动了
kill 之后再直接使用 service 文件里中 ExecStart 的设置值也成功了
service 文件很简单
看了下 EnvironmentFile 内容都是注释的 service 文件没有改动过

这可能是什么原因呢?
1728 次点击
所在节点    问与答
22 条回复
thunderw
2022-04-10 10:42:28 +08:00
systemctl status -l php74-php-fpm
加个-l 看看是咋了?
azev
2022-04-10 11:10:57 +08:00
@thunderw 还是没有详细信息

[root@cent79 ~]# systemctl status -l php74-php-fpm
● php74-php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php74-php-fpm.service; enabled; vendor preset: disabled)
Active: failed (Result: signal) since 日 2022-04-10 10:13:03 CST; 57min ago
Process: 24028 ExecStart=/opt/remi/php74/root/usr/sbin/php-fpm --nodaemonize (code=killed, signal=SEGV)
Main PID: 24028 (code=killed, signal=SEGV)

4 月 10 10:13:02 cent79 systemd[1]: Starting The PHP FastCGI Process Manager...
4 月 10 10:13:03 cent79 systemd[1]: php74-php-fpm.service: main process exited, code=killed, status=11/SEGV
4 月 10 10:13:03 cent79 systemd[1]: Failed to start The PHP FastCGI Process Manager.
4 月 10 10:13:03 cent79 systemd[1]: Unit php74-php-fpm.service entered failed state.
4 月 10 10:13:03 cent79 systemd[1]: php74-php-fpm.service failed.
adoal
2022-04-10 11:53:49 +08:00
FPM 自己的日志呢,比如 /var/log 下有没有 php74-fpm 之类的文件或目录。
adoal
2022-04-10 11:55:04 +08:00
交互用户和服务用户表现不一样,感觉是文件权限问题。
NoahNye
2022-04-10 12:07:54 +08:00
服务配置成和手动启动一样的用户试试,日常里这种情况很多的确是权限问题,如果还不行就要查看是否有多个不同环境了,多个配置文件了,我大概会这样排查。
kiwi95
2022-04-10 12:20:22 +08:00
有可能是 service 文件里面没有写 restart ,只有 start stop 这几个命令
villivateur
2022-04-10 14:11:48 +08:00
@kiwi95 restart 就是 stop + start
azev
2022-04-10 15:37:20 +08:00
@adoal /var/opt/remi/php74/log/php-fpm/error.log 中也没有什么有用信息
都是停止启动什么的
[10-Apr-2022 15:06:02] NOTICE: Terminating ...
[10-Apr-2022 15:06:02] NOTICE: exiting, bye-bye!
[10-Apr-2022 15:06:28] NOTICE: fpm is running, pid 24619
[10-Apr-2022 15:06:28] NOTICE: ready to handle connections
[10-Apr-2022 15:06:28] NOTICE: systemd monitor interval set to 10000ms
[10-Apr-2022 15:09:28] NOTICE: Terminating ...
[10-Apr-2022 15:09:28] NOTICE: exiting, bye-bye!
azev
2022-04-10 15:39:44 +08:00
@NoahNye
@adoal
看了下手动启动和服务启动的进程信息 用户是一样的
主进程都是 root 其他的都是 apache

真是头大了
adoal
2022-04-10 19:14:59 +08:00
看到你在水木上贴的 unit 文件了,貌似也没啥特别的。
对了,你说是要启用一个扩展插件 修改了 php.ini ,然后就不对了?是啥插件? php 装好自带的还是另装的? php.ini 怎么改的?
adoal
2022-04-10 19:16:23 +08:00
还有就是命令行上手启之后用 systemctl 也可以了?是持续多次启停都可以,还是要每次手启后只能用 systemctl 启一次?
多问问自己各种细节,说不定自己就找到问题了。
adoal
2022-04-10 19:17:13 +08:00
哦,不对,我看错了,是说使用 ExecStart 里的命令来启动可以,并不是用 systemctl
naturegreen
2022-04-10 19:21:55 +08:00
SELinux ?
azev
2022-04-10 19:46:34 +08:00
@adoal 新装的插件 swoole_loader 不过这几次启动失败看到前面有个错误信息 就是关于那个插件的
看来是插件的问题 但是我手动启动怎么就没有问题呢
azev
2022-04-10 19:47:48 +08:00
@naturegreen 是的 centos
新装了个 debian 虚拟机 没有这个问题了 同一个插件 so 文件
neilyoone
2022-04-10 20:11:38 +08:00
service 起服务 和 手动起服务 获取的环境变量可能是不一样的

具体以日志输出 排查.
adoal
2022-04-10 20:12:56 +08:00
对了,除了环境之外好像还有 ulimit 之类的东西也可能不一样
Kinnice
2022-04-10 20:27:21 +08:00
@azev 临时关闭 selinx 执行: setenforce 0
azev
2022-04-10 20:38:10 +08:00
@Kinnice
@naturegreen
@adoal 关闭 selinx 之后 可以了
adoal
2022-04-10 21:10:56 +08:00
呃,竟然开着 selinux 玩……遇到的大多数人装了 RH 系之后第一件事就是关 selinux ^_^

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/846019

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX