这是我的代码:
#!/bin/bash
ps cax | grep testing > /dev/null
while [ 1 ]
do
if [ $? -eq 0 ]; then
echo "Process is running."
sleep 10
else
nohup ./testing.sh &
sleep 10
fi
done
我将其作为nohup ./script.sh &
它说nohup: failed to run command './script.sh': No such file or directory
有什么问题?
答案 0 :(得分:2)
文件script.sh根本不存在于您发出命令的目录中
如果确实存在并且不可执行,您将得到:
`nohup:无法运行命令'./script.sh':权限被拒绝
答案 1 :(得分:0)
对于Linux上每个新创建的脚本,您应首先更改权限,因为您可以使用
查看权限详细信息ls -lah
以下内容可能对您有所帮助:
#!/bin/bash
while [ 1 ];
do
date=`date`
pid=`ps -ef | grep "your process" | grep -v grep | awk -F' ' '{print $2}'`
if [[ -n $pid ]]; then
echo "$date - processID $pid is running."
else
echo "$date - the process is not running"
# script to restart your process
say: start the process
fi
sleep 5m
done
答案 2 :(得分:-1)
确保您的脚本保存为script.sh 和你的执行nohup ./script.sh&来自script.sh的同一目录。 您也可以通过
为script.sh提供可执行权限chmod 776 script.sh
或强>
nohup ./script.sh &
以
运行nohup sh ./script.sh &