linux客户端终止进程,在Linux中,如何在关闭SSH客户端后阻止后台进程停止

anthonyrisin..

40

守护进程?nohup的?屏幕?(tmux ftw,屏幕是垃圾;-)

只做其他应用程序从一开始就做的事情 - 双叉.

# ((exec sleep 30)&)

# grep PPid /proc/`pgrep sleep`/status

PPid: 1

# jobs

# disown

bash: disown: current: no such job

砰! 完成:-)我在所有类型的应用程序和许多旧机器上使用过无数次.您可以结合重定向和诸如此类的东西来打开您和流程之间的私人渠道.

创建为coproc.sh:

#!/bin/bash

IFS=

run_in_coproc () {

echo "coproc[$1] -> main"

read -r; echo $REPLY

}

# dynamic-coprocess-generator. nice.

_coproc () {

local i o e n=${1//[^A-Za-z0-9_]}; shift

exec {i}<> >(:) {e}<> >(:)

. /dev/stdin <

(("\$@")&) &$o 2>&$e

$n=( $o $i $e )

COPROC

}

# pi-rads-of-awesome?

for x in {0..5}; do

_coproc COPROC$x run_in_coproc $x

declare -p COPROC$x

done

for x in COPROC{0..5}; do

. /dev/stdin <

read -r -u \${$x[0]}; echo \$REPLY

echo "$x &\${$x[1]}

read -r -u \${$x[0]}; echo \$REPLY

RUN

done

然后

# ./coproc.sh

declare -a COPROC0='([0]="21" [1]="16" [2]="23")'

declare -a COPROC1='([0]="24" [1]="19" [2]="26")'

declare -a COPROC2='([0]="27" [1]="22" [2]="29")'

declare -a COPROC3='([0]="30" [1]="25" [2]="32")'

declare -a COPROC4='([0]="33" [1]="28" [2]="35")'

declare -a COPROC5='([0]="36" [1]="31" [2]="38")'

coproc[0] -> main

COPROC0

coproc[1] -> main

COPROC1

coproc[2] -> main

COPROC2

coproc[3] -> main

COPROC3

coproc[4] -> main

COPROC4

coproc[5] -> main

COPROC5

你去,产生什么.

"heredoc采购":

. /dev/stdin <

[...]

EOF

这适用于我曾尝试过的每一个shell,包括busybox/etc(initramfs).我以前从未见过它,我在刺激时独立发现它,谁知道源可以接受args?但是,如果存在这样的事情,它通常可以作为一种更易于管理的评估形式.

无论你的回答有多好,有时候SO上的某个人都不喜欢它并且会投票.最好不要担心太多. (7认同)

为什么要投票......如果这个问题已经过时了怎么办?考虑到其他11个答案很糟糕,这显然是相关的.这个解决方案是没有系统化的,过去30年来用于守护的惯用和可接受的方式,而不是毫无意义的应用程序,例如.nohup等. (2认同)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值