配置为将JMeter作为systemd服务启动

问题描述

我通常使用“ nohup”启动Jmeter,而不是一直使用Cmd,而是决定配置一个始终运行Jmeter的systemd服务。

我有以下命令:基本上运行jmeter并记录输出

nohup /app/jmeter/apache-jmeter-5.3/bin/jmeter -j /app/server-1/jmeter/logs/jmeter-traffic.log -n -t /app/jmeter/inputfile.jmx > /dev/null 2>&1 &

我创建了一个.service文件,该文件在上面运行上述命令

ExecStart=/app/jemter/apache-jmeter-5.3/bin/jmeter -j /app/jmeter/logs/jmeter-log -n -t /app/jmeter/inputfile.jmx > /dev/null 2>&1 &

启动服务时-遇到各种错误

EX: class path contains multiple bindings
EX: Failed to start the service
EX: Failed at step EXEC spawing 
EX: an error occured at arg: > 

这是启动服务的正确方法还是应该创建包含上述命令的shell脚本文件

解决方法

systemd对您的>运算符一无所知,因此建议您保留命令原样:

ExecStart=/app/jmeter/apache-jmeter-5.3/bin/jmeter -j /app/jmeter/logs/jmeter-log -n -t /app/jmeter/inputfile.jmx

如果您不想在日志中看到JMeter的输出,可以amend your systemd unit configuration像这样:

[Service]
StandardOutput=null
StandardError=journal

我还建议添加-l命令行参数,以便将结果存储到.jtl results file中以供进一步分析

更多信息:How Do I Run JMeter in Non-GUI Mode?