我有一个名为mandacalc的大型脚本,我希望始终使用nohup命令运行该脚本。如果我从命令行调用它,如下所示:
nohup mandacalc &
但是,如果我试图在命令中包含nohup,这样我就不需要在每次执行它时都输入它,我会得到一个错误消息。
到目前为止,我尝试了以下选项:
nohup (
command1
....
commandn
exit 0
)
以及:
nohup bash -c "
command1
....
commandn
exit 0
" # and also with single quotes.
到目前为止,我只收到了抱怨nohup命令实现或脚本中使用的其他引号的错误消息。
干杯。
6条答案
按热度按时间vojdkbi01#
试着在脚本的开头添加以下内容:
如果现在使用
--daemon
作为参数启动脚本,它将重新启动自己,并从当前shell分离。您仍然可以通过在不使用此选项的情况下启动脚本来“在前台”运行脚本。
qnyhuwrf2#
只需在脚本的开头加上
trap '' HUP
即可。此外,如果它创建了子进程
someCommand&
,则必须将其更改为nohup someCommand&
才能正常工作......我已经对此进行了很长时间的研究,只有这两个(trap和nohup)的组合才能在我的特定脚本中工作,其中xterm关闭得太快。fquxozlt3#
在bash(或首选shell)启动文件中创建一个同名别名:
dwbf0jvd4#
为什么不直接写一个包含
nohup ./original_script
的脚本呢?vybvopom5#
这里有一个很好的答案:http://compgroups.net/comp.unix.shell/can-a-script-nohup-itself/498135
gdrx4gfi6#
处理这种情况的最好方法是使用
$()
nohup
需要一个命令,这样您就可以使用一个nohup
执行多个命令