内部脚本失败后在外部Bash脚本中清理

本·沃森

我在Bash中的一个名为的文件中具有以下方法outer-script.sh

test_service() {
    nohup java -jar target/outer-runner.jar > service.log 2>&1&
    echo $! > runner-process.pid
    ./inner-script.sh
    kill `cat runner-process.pid`
}

inner-script.sh可以抛出exit 1-我set -eouter-script.sh这样的外部脚本将停止运行,如果内部的一个动作exit 1一切都很好,但是如果kill发生故障,它不会拨打电话

我尝试添加

trap "{ kill `cat runner-process.pid` }" EXIT

紧接在的结束括号下方,test_service()但是如果发生故障,我会收到错误消息

./outer-script.sh: exit trap: line 2: syntax error: unexpected end of file

并且进程没有终止,所以我怀疑这不是正确的语法。我已经尝试了其他一些教程中使用的语法,但是令人惊讶的是,没有一个语法特别清楚。

确保使用inner-script.sh返回时杀死进程的正确方法是exit 1什么?

剥壳机

尝试

trap '{ kill $(< runner-process.pid) ; }' EXIT

我不确定您是否需要单引号VS dbl-引号,但是当可以消除一些评估顺序问题时,我通常喜欢使用单引号。

任何时候要创建一个流程组{ ... ; }(在里面{}),您都需要;在结束}char之前添加一个终止符

使用$(< pidFile)是获取文件内容的一种更有效的过程速记方法。考虑一下<正常情况。同样在这里。

$( ..cmds ..)是back-tic cmd替换的现代版本。加入90年代,并停止使用back-tic,除非您需要代码在真正的Bourne Shell下运行/bin/sh

高温超导

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Bash脚本清理旧的备份文件

来自分类Dev

在外部脚本和样式表中是否需要rel =“ nofollow”?

来自分类Dev

Bash脚本退出清理

来自分类Dev

在产品回购中还是在外部回购中构建/部署脚本?

来自分类Dev

在脚本中执行清理任务

来自分类Dev

红宝石脚本后清理-捕获信号

来自分类Dev

Zope中的Python脚本无法在外部方法中找到函数名称

来自分类Dev

内部引用数据在Bash脚本中

来自分类Dev

从外部脚本调用内部脚本

来自分类Dev

Gradle:如何在外部脚本的buildscript块中配置存储库

来自分类Dev

bash脚本中的Expect命令失败

来自分类Dev

在bash脚本的变量中收集外部脚本输出

来自分类Dev

在bash脚本中的函数内部读取-p

来自分类Dev

Bash脚本,清理步骤。

来自分类Dev

清理AngularJS中的脚本

来自分类Dev

如何将此Java脚本函数放置在外部文件中以进行用户控制?

来自分类Dev

如何将所有JQuery保留在外部脚本文件中?

来自分类Dev

在外部jQuery脚本中使用PHP

来自分类Dev

rsync失败,但仅在bash脚本中

来自分类Dev

红宝石脚本后清理-捕获信号

来自分类Dev

如何遍历目录并清理bash脚本

来自分类Dev

为什么getScript在外部脚本中不起作用?

来自分类Dev

bash脚本中的Expect命令失败

来自分类Dev

如何在外部脚本中的React组件中调用方法

来自分类Dev

替换外部 bash 脚本中的特定变量

来自分类Dev

jQuery 脚本在 HTML 中有效,但在外部文件中无效

来自分类Dev

如何在外部 bash 脚本中使用全局 groovy 变量

来自分类Dev

模块函数在外部脚本中未定义

来自分类Dev

在外部脚本中使用 wordpress 操作

Related 相关文章

热门标签

归档