nohup 运行 bash 任务实现长时间压力测试
使用 nohup 结合 bash 可以确保长时间运行的压力测试任务在后台持续执行,即使终端断开连接也不会中断。以下是具体实现方法:
编写压力测试脚本
创建一个 bash 脚本(如 stress_test.sh),包含具体的压力测试逻辑。例如模拟 CPU 或内存负载:
#!/bin/bash
while true; do
# CPU 压力测试(使用 dd 命令模拟计算负载)
dd if=/dev/zero of=/dev/null bs=1M count=1000
# 内存压力测试(占用 1GB 内存 10 秒)
stress-ng --vm 1 --vm-bytes 1G --vm-keep --timeout 10s
done
使用 nohup 启动脚本
通过 nohup 启动脚本并重定向输出到日志文件,避免占用当前终端:
nohup bash stress_test.sh > stress_test.log 2>&1 &
> stress_test.log将标准输出重定向到日志文件。2>&1将错误输出合并到标准输出。&让任务在后台运行。
验证任务运行状态
检查任务是否在后台运行:
ps aux | grep stress_test.sh
或查看日志文件内容:
tail -f stress_test.log
终止压力测试任务
找到进程 ID 并强制终止:
pkill -f stress_test.sh
# 或手动指定 PID
kill -9 <PID>
注意事项
- 确保脚本中的压力测试工具(如
stress-ng)已安装。 - 监控系统资源(如
top或htop),避免过度占用导致系统崩溃。 - 对于分布式压力测试,可通过 SSH 在多台机器上并行启动脚本。
通过这种方法,可以稳定维持长时间的压力测试任务,适合验证系统在高负载下的稳定性或性能瓶颈。
1321

被折叠的 条评论
为什么被折叠?



