首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用nohup调用函数

使用nohup调用函数
EN

Stack Overflow用户
提问于 2013-05-08 16:07:42
回答 6查看 24.5K关注 0票数 22

我正在尝试使用nohup调用一个函数,如下所示:

代码语言:javascript
复制
function1(){
    while true 
    do
        echo "function1"
        sleep 1
    done
}

nohup function1 & 
# ...... some other code

但可能是nohup看不到这个函数,我得到了这个错误:

代码语言:javascript
复制
nohup: failed to run command `function1' : No such file or dictionary

我不想为我的函数创建新的sh文件。我该如何解决这个问题呢?

EN

回答 6

Stack Overflow用户

发布于 2017-04-04 17:08:08

另一种解决方案:

代码语言:javascript
复制
function background {
    echo TEST
}
export -f background 

nohup bash -c background &
票数 29
EN

Stack Overflow用户

发布于 2013-05-08 16:14:46

nohup适用于命令,而不适用于脚本函数。

例如,包含function1()的脚本(比如func.sh)应该调用函数--

代码语言:javascript
复制
function1(){
    while true 
    do
        echo "function1"
        sleep 1
    done

}

function1

现在,在后台使用nohup调用脚本func.sh -:

代码语言:javascript
复制
nohup ./func.sh &

如果您需要从脚本中禁用挂断信号,请使用shell内置的trap。该示例忽略SIGHUP,但可用于忽略其他示例(例如SIGINT)。

代码语言:javascript
复制
trap "" HUP   # script will ignore HANGUP signal
票数 7
EN

Stack Overflow用户

发布于 2014-05-27 04:19:13

我为自己找到了一个可行的解决方案-在一个文件(例如.functions)中定义函数,然后使用nohup运行该函数:

nohup bash -c "source .functions; function1" &

在Ubuntu 13.04上测试。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16435629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档