linux - 在永恒的 bash 循环中调用 nc 后清理

标签 linux bash terminal debian

我有一个最小的脚本,它只监听一个套接字并打印端口上显示的任何内容,基本上,可以肯定的是,它工作正常。然而,我在 ^z

之后无法清理
  • 也许 sigtstp 不是执行此操作的正确方法?
  • 我可以让 Bash 监听并退出 ctrl+c 吗?
  • 我可以清理 nc 进程吗?它不断占领港口并强制(好吧...)kill -9?

#!/bin/bash
while :
do
    nc -l -p $1
done

最佳答案

我不知道“我可以让 bash 听 ^C 吗?”是什么意思,但试试这个脚本(未经测试,我没有安装 nc):

#!/bin/bash
pid=0

cleanup() { (( $pid != 0 )) && kill -9 $pid; }
trap "cleanup" EXIT

while :
do
   nc -l -p $1
   pid=$!
done

关于linux - 在永恒的 bash 循环中调用 nc 后清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21621119/

相关文章:

linux - 如何显示启动时运行的脚本的终端?

linux - 使用 linux 命令行禁用 firefox 中的自动更新

linux - awk 语法和字符串错误

linux - 首先在客户端本地评估 ssh 远程执行 block 中的指令。为什么?

linux - 删除 Linux 终端中最后执行的命令

c - 如何在 C 中给定父 PID 时获取所有子进程的 PID

python - 吉时利 2410 和 PyVISA - VI_ERROR_TMO : Timeout expired before operation completed

html - 从 Unix shell 在电子邮件中嵌入动态 HTML 表

php - 通过终端启动多个同时连续运行的脚本,这些脚本在终端 session 结束后继续运行

git - 如何在终端中确认 `git commit --amend` 之后的更改?