#!/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
#!/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.3.1/bin/sym --port 8082
fi
save it as my.sh
This works fine with **symmetric-ds-3.3.1** .
Put echo "true">man.txt
答案2
如果你的脚本崩溃了,那么有几种选择
- 重命名脚本,使其不再匹配 grep RE。
- 更改 grep RE 使得它对于您想要终止的程序来说是唯一的。
答案3
首先更改目录
cd /var/www/symmetric-ds-3.1.6/bin/
然后运行
sh sym --port 8082 --server
它可能在当前目录中搜索某些文件。