我正在尝试编写一个小型 bash 脚本来监视 RiotShield(英雄联盟的第 3 方玩家抓取工具)的输出是否崩溃。如果在日志中找到关键字,它应该终止该进程并重新启动它。
这是我的 bash 脚本:
#!/bin/bash
crash[1]="disconnected"
crash[2]="38290209"
while true; do
list=$(tail log.log)
#clear
echo "Reading Log"
echo "========================================"
echo $list
for item in ${list//\\n/ }
do
for index in 1 2
do
c=${crash[index]}
#echo "Crash Word:" $c
if [[ "$c" == *"$item"* ]]; then
echo "RiotShield has crashed."
echo "Killing RiotShield."
kill $(ps aux | grep '[R]iotShield.exe' | awk '{print $2}')
echo "RiotShield killed!"
echo "Clearing log."
echo > log.log
echo "Starting RiotShield"
(mono RiotShield.exe …Run Code Online (Sandbox Code Playgroud)