我正在尝试使用nohup调用一个函数,如下所示:
function1(){
while true
do
echo "function1"
sleep 1
done
}
nohup function1 &
# ...... some other code但可能是nohup看不到这个函数,我得到了这个错误:
nohup: failed to run command `function1' : No such file or dictionary我不想为我的函数创建新的sh文件。我该如何解决这个问题呢?
发布于 2017-04-04 17:08:08
另一种解决方案:
function background {
echo TEST
}
export -f background
nohup bash -c background &发布于 2013-05-08 16:14:46
nohup适用于命令,而不适用于脚本函数。
例如,包含function1()的脚本(比如func.sh)应该调用函数--
function1(){
while true
do
echo "function1"
sleep 1
done
}
function1现在,在后台使用nohup调用脚本func.sh -:
nohup ./func.sh &如果您需要从脚本中禁用挂断信号,请使用shell内置的trap。该示例忽略SIGHUP,但可用于忽略其他示例(例如SIGINT)。
trap "" HUP # script will ignore HANGUP signal发布于 2014-05-27 04:19:13
我为自己找到了一个可行的解决方案-在一个文件(例如.functions)中定义函数,然后使用nohup运行该函数:
nohup bash -c "source .functions; function1" &
在Ubuntu 13.04上测试。
https://stackoverflow.com/questions/16435629
复制相似问题