php artisan serve 无内置状态接口,需通过 ps aux | grep 'artisan serve' 查进程、lsof -i :8000 查端口监听、curl -I https://www.php.cn/link/f0838b2ebfc6440a474eabdc326bf31a 测响应、以及观察启动终端实时日志来综合判断运行状态。

直接查看 php artisan serve 的运行状态,它本身不提供内置状态接口或守护进程管理能力,所以不能像系统服务那样用 systemctl status 查“是否在跑”。但你可以通过组合本地可观测手段快速确认——核心是:看进程、看端口、看日志、看响应。
查进程是否存在
artisan serve 启动后是一个前台 PHP 进程(默认监听 127.0.0.1:8000),不是后台服务。只要终端窗口开着且没被 Ctrl+C 中断,它就在运行。
- 在另一个终端执行:
ps aux | grep 'artisan serve',若看到类似php /path/to/artisan serve的行,说明进程活跃 - 注意过滤掉 grep 自身:更稳妥写法是
pgrep -f "artisan serve" | wc -l,返回 1 表示正在运行
查端口是否被监听
即使进程存在,也可能因端口被占或启动失败而未真正监听。验证端口最可靠:
-
lsof -i :8000(macOS / Linux)或netstat -an | findstr :8000(Windows) - 看到
LISTEN状态,且 PID 对应 artisan 进程,即服务已就绪 - 若提示“Address already in use”,说明端口冲突,需换端口启动:
php artisan serve --port=8001
查网页能否响应
最直观的判断方式——打开浏览器或用命令行测试:
立即学习“PHP免费学习笔记(深入)”;
- 访问 https://www.php.cn/link/f0838b2ebfc6440a474eabdc326bf31a,能加载 Laravel 欢迎页即正常
- 终端中执行:
curl -I https://www.php.cn/link/f0838b2ebfc6440a474eabdc326bf31a 2>/dev/null | head -1,返回HTTP/1.1 200 OK表示服务可用 - 若返回
Failed to connect或超时,说明服务未启动或端口不对
查控制台输出和日志
artisan serve 默认将请求日志实时打印在启动终端上:
- 每收到一次 HTTP 请求,终端会输出一行类似
[Sat Jun 6 15:22:30 2026] 127.0.0.1:54321 Accepted的信息 - 如果终端长时间无任何新日志,且你确认有访问,可能服务已卡死或崩溃(常见于内存溢出、扩展缺失等)
- 错误不会写入
storage/logs/,而是直接显示在终端,所以别关掉启动窗口



















