本文目录导读:

Linux/Unix 系统
使用 ps 命令(推荐)
# 获取特定进程的启动时间(假设进程名为 "nginx") ps -eo pid,lstart,cmd | grep nginx | head -1 # 更精确的方式(使用 pid) ps -p <PID> -o lstart,etime
使用 /proc 文件系统
# 获取进程启动时间戳(秒数)
cat /proc/<PID>/stat | awk '{print $22}'
# 或者使用更易读的方式
stat /proc/<PID> | grep "Birth"
Shell 脚本示例
#!/bin/bash
# 获取进程启动时间
get_process_start_time() {
local pid=$1
if [ -z "$pid" ]; then
echo "Usage: $0 <PID>"
exit 1
fi
# 方法1: 使用 ps
echo "启动时间: $(ps -p $pid -o lstart= 2>/dev/null)"
# 方法2: 使用 proc
if [ -f /proc/$pid/stat ]; then
local start_time=$(awk '{print $22}' /proc/$pid/stat)
local uptime=$(cat /proc/uptime | awk '{print $1}')
# 系统启动时间
local system_start=$(date -d "now - $uptime seconds" +%s)
local process_start=$((system_start + start_time / 100))
echo "启动时间戳: $(date -d @$process_start '+%Y-%m-%d %H:%M:%S')"
fi
}
# 使用示例:获取 PID 为 1234 的进程启动时间
get_process_start_time 1234
Windows 系统
PowerShell 脚本
# 获取特定进程的启动时间
$processName = "notepad"
Get-Process -Name $processName | Select-Object Name, StartTime, Id
# 或者使用 WMI
Get-WmiObject Win32_Process -Filter "Name='$processName'" |
Select-Object Name, ProcessId, @{Name="StartTime"; Expression={$_.CreationDate}}
批处理脚本
@echo off :: 使用 wmic 获取进程启动时间 set "processName=notepad.exe" wmic process where name="%processName%" get name,processid,creationdate /format:list
Python 脚本(跨平台)
import psutil
import time
from datetime import datetime
def get_process_start_time(process_name):
"""
获取进程启动时间
"""
for proc in psutil.process_iter(['pid', 'name', 'create_time']):
try:
if process_name.lower() in proc.info['name'].lower():
create_time = proc.info['create_time']
start_time = datetime.fromtimestamp(create_time)
return {
'pid': proc.info['pid'],
'name': proc.info['name'],
'start_time': start_time.strftime('%Y-%m-%d %H:%M:%S')
}
except (psutil.NoSuchProcess, psutil.AccessDenied):
pass
return None
# 使用示例
result = get_process_start_time('nginx')
if result:
print(f"进程: {result['name']}")
print(f"PID: {result['pid']}")
print(f"启动时间: {result['start_time']}")
macOS 系统
使用 ps 命令
# 获取进程启动时间 ps -o lstart -p <PID> # 获取所有进程的启动时间 ps aux | grep <process_name>
通用的 Shell 脚本模板
#!/bin/bash
# 通用获取进程启动时间的函数
get_process_info() {
local process_name=$1
local pid=$2
if [ -z "$process_name" ] && [ -z "$pid" ]; then
echo "请提供进程名或PID"
return 1
fi
# 如果提供了进程名,查找对应的 PID
if [ -z "$pid" ]; then
pid=$(pgrep -x "$process_name" | head -1)
if [ -z "$pid" ]; then
echo "未找到进程: $process_name"
return 1
fi
fi
echo "进程信息:"
echo "----------"
echo "PID: $pid"
# 获取启动时间
case "$(uname)" in
Linux)
echo "启动时间: $(ps -p $pid -o lstart= 2>/dev/null)"
# 或者使用 /proc
if [ -f /proc/$pid/stat ]; then
local start_ticks=$(awk '{print $22}' /proc/$pid/stat)
local uptime=$(cat /proc/uptime | awk '{print $1}')
local system_boot=$(date -d "now - $uptime seconds" +%s)
local process_start=$((system_boot + start_ticks / 100))
echo "启动时间戳: $(date -d @$process_start '+%Y-%m-%d %H:%M:%S')"
fi
;;
Darwin)
echo "启动时间: $(ps -o lstart= -p $pid 2>/dev/null)"
;;
*)
echo "不支持的操作系统"
;;
esac
}
# 使用示例
get_process_info "chrome"
# 或者指定 PID
# get_process_info "" 1234
使用说明
- Linux/Mac: 建议使用
ps命令,因为它是 POSIX 标准的一部分 - Windows: PowerShell 提供了最简洁的方式
- 跨平台: Python 的
psutil库是最佳选择 - 权限: 某些系统进程可能需要管理员/root 权限才能访问
根据你的具体需求选择合适的脚本即可。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播