在Linux系统中,了解进程的启动信息对于系统管理、故障排查和安全审计都至关重要,通过查看进程的启动命令、启动参数、启动用户、启动时间等详细信息,可以快速定位进程来源、分析异常行为或优化资源配置,本文将详细介绍Linux中查看进程启动信息的多种方法,涵盖基础命令、系统工具及底层文件系统,帮助用户全面掌握进程启动信息的获取技巧。

基础命令:ps与top——快速查看进程启动信息
ps(Process Status)是Linux中最基础的进程查看工具,通过不同选项组合可以获取进程的启动信息。top则以动态形式展示进程状态,同样支持启动信息的查看。
ps命令详解
ps命令的输出格式灵活,通过-o选项可自定义显示字段,与进程启动相关的常用字段包括cmd(启动命令)、args(完整命令行参数)、lstart(启动时间)、ppid(父进程ID)等。
-
查看所有进程的启动命令和参数:
ps -eo pid,ppid,cmd,lstart
输出中,
cmd列显示进程的启动命令(可能被截断),args列显示完整命令行参数,lstart列显示启动时间(格式为“星期 月 日 时分秒 年”),查看sshd进程的启动信息:ps -eo pid,ppid,args,lstart | grep sshd
-
查看指定进程的启动时间:
若已知进程ID(PID),可通过-p选项单独查询:ps -p <PID> -o lstart
查看PID为1234的进程启动时间:
ps -p 1234 -o lstart
-
查看进程的完整启动命令:
部分系统默认cmd列可能截断长命令,使用args字段可显示完整参数:ps -eo pid,args
top命令动态查看
top命令默认显示进程的COMMAND(启动命令),但需进入交互模式后按f键选择显示字段,添加START(启动时间)或COMMAND列,操作步骤:
- 运行
top后按f键,进入字段选择界面; - 使用上下键选中
START或COMMAND字段,按空格键选中; - 按
Esc键返回,即可看到包含启动信息的动态更新列表。
systemd系统:服务进程的启动信息管理
现代Linux发行版(如Ubuntu 18.04+、CentOS 7+)多采用systemd作为系统管理器,通过systemctl和journalctl可精准查看systemd服务的启动信息。
systemctl status——查看服务状态与启动日志
对于systemd管理的服务(如nginx、sshd),systemctl status可直接显示服务状态、启动时间及最近的日志片段:
systemctl status <服务名>
查看nginx服务的启动信息:
systemctl status nginx
输出结果包含“● nginx.service – The nginx HTTP and reverse proxy server”等描述,以及“Active: active (running) since YYYY-MM-DD HH:MM:SS CST”的启动时间,以及日志中的错误或启动参数。

systemctl show——查看服务的详细属性
systemctl show可输出服务的完整属性,包括启动命令、依赖关系等:
systemctl show <服务名> --property=ExecStart,ExecStartPre,Description
查看sshd服务的启动命令:
systemctl show sshd --property=ExecStart
输出类似“ExecStart=/usr/sbin/sshd -D”的路径及参数。
journalctl——查询服务启动日志
journalctl结合-u选项可过滤指定服务的启动日志,包含完整的启动过程和错误信息:
journalctl -u <服务名> --since today
查看nginx今天启动时的日志:
journalctl -u nginx --since "2024-01-01 10:00:00"
proc文件系统:底层进程信息的直接读取
Linux内核通过/proc虚拟文件系统暴露进程的详细信息,每个进程在/proc下以PID命名的目录存储其运行数据,是获取底层启动信息的核心途径。
/proc/<PID>/cmdline与/proc/<PID>/cmd
-
/proc/<PID>/cmdline:以空字符(