无法启动脚本

无法启动脚本
#!/bin/bash
value=$(<man.txt)
echo "$value"

if [ "$value" == "true" ]; then
    echo "startedif_manthan"
      ps -ef|grep sym |awk '{ print $2 }'|sudo  xargs kill -9;
      sleep 30;
    sudo sh /var/www/symmetric-ds-3.1.6/bin/sym --port 8082 --server;
fi

你好,我有这个脚本可以终止一个进程并在一段时间后重新启动该脚本。它可以正常终止脚本,但重新启动脚本(sudo sh /var/www/symmetric-ds-3.1.6/bin/sym --port 8082 --server)无法正常运行。当我手动运行脚本时也会出现问题。我不知道它是否是 shell 脚本。但当我尝试手动转到脚本位置并执行此命令 ./sym --port 8082 --server 时,脚本正常运行。

有什么建议么?

答案1

根据我的观察,进程列表匹配命令将终止grep执行模式匹配的进程并阻止进一步执行。一个快速的破解方法是从搜索结果中删除 grep 本身:

ps -ef|grep sym | grep -v grep| awk '{ print $2 }'|sudo  xargs kill -9;

更好的方法是阅读pgrep/pkill并使用它们。:)

相关内容