问题描述
我想打电话给使用nohup这个像这样的一个功能:
I am trying to call a function using nohup such as this:
function1(){
while true
do
echo "function1"
sleep 1
done
}
nohup function1 &
# ...... some other code
但也许功能不是由nohup的看到,我看到terinal此消息:
but maybe the function isn't seen by nohup and I see this message in the terinal:
nohup的:无法运行命令'功能1:没有这样的文件或字典
我不希望我的函数来创建新的SH文件。我该如何解决这个问题?谢谢你。
I don't want to create new sh file for my function. How can I fix this? thank you.
推荐答案
的nohup
适用于命令而不是脚本功能。
nohup
applies to commands and not to script functions.
例如,脚本(比如func.sh),包含功能1()应调用的函数 - :
For example, the script (say func.sh) that contains function1() should call the function-:
function1(){
while true
do
echo "function1"
sleep 1
done
}
function1
现在调用在后台与的nohup
脚本func.sh - :
Now call the script func.sh with nohup
in the background-:
nohup ./func.sh &
如果您需要从脚本中禁用挂起信号使用shell内置的陷阱
。的例子忽略SIGHUP但可用于忽略他人(例如信号情报)。
If you need to disable the hangup signal from within the script use the shell built-in trap
. The example ignores SIGHUP but can be used to ignore others (e.g. SIGINT).
trap "" HUP # script will ignore HANGUP signal
这篇关于Linux的shell脚本:调用由nohup的功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!