shell指令写:判断ledd若存在,在执行/etc/init.d/ledd start,否则实行/etc/init.d/ledd restart
时间: 2024-01-07 09:05:51 浏览: 54
可以使用如下的shell指令来实现你的需求:
```
if pidof ledd > /dev/null
then
/etc/init.d/ledd start
else
/etc/init.d/ledd restart
fi
```
这个指令首先使用 `pidof` 命令来判断进程 `ledd` 是否存在,如果存在,则执行 `/etc/init.d/ledd start` 命令;如果不存在,则执行 `/etc/init.d/ledd restart` 命令。其中,`> /dev/null` 表示将命令的输出重定向到空设备,这样可以避免在控制台输出一些不必要的信息。
相关问题
if pidof ledd > /dev/null;then /etc/init.d/ledd restart;else /etc/init.d/ledd start;fi;echo Return=OK;解释下
这是一个Shell脚本,作用是检查名为ledd的进程是否正在运行,如果在运行则重启该进程,否则启动该进程,并输出 Return=OK。
具体解释如下:
- 如果pidof ledd命令返回结果不为空,则说明名为ledd的进程正在运行,重启该进程:/etc/init.d/ledd restart;
- 如果pidof ledd命令返回结果为空,则说明名为ledd的进程没有在运行,启动该进程:/etc/init.d/ledd start;
- 如果命令执行成功,则输出 Return=OK。
其中,"> /dev/null"的作用是将命令执行过程中的标准输出重定向到空设备,这样就不会输出任何信息到终端。这样做是为了避免在执行pidof命令时在终端上输出一些不必要的信息,保持输出的简洁。
若LED的进程不存在,则执行/etc/init.d/ledd restart;否则延迟3秒循环等待,循环110次后,退出返回ReturnFail
好的,可以使用以下的shell脚本来实现:
```bash
#!/bin/bash
count=0
while true
do
if pgrep ledd > /dev/null
then
echo "ledd进程存在"
sleep 3s
else
echo "ledd进程不存在,正在重启ledd进程..."
/etc/init.d/ledd restart
sleep 5s
fi
count=$((count+1))
if [ $count -ge 110 ]
then
echo "已经循环110次,退出"
exit 1
fi
done
```
该脚本会不断循环,判断ledd进程是否存在。如果ledd进程不存在,则会输出"ledd进程不存在,正在重启ledd进程...",然后执行重启ledd进程的操作,并等待5秒钟后继续循环。如果ledd进程存在,则会等待3秒钟后继续循环。
脚本会在循环110次后退出,并返回1作为exit code。你可以根据需要调整循环次数。