当前位置: 首页 > article >正文

Mac 使用 zsh 终端提示 zsh: killed 的问题

我的脚本的内容为:

#!/bin/bash

set -e

pids=$(ps -ef | grep consul | grep -v grep | awk '{print $2}')

for pid in $pids; do
	echo "kill process: $pid"
	kill -9 $pid
done

cd $(dirname $0)

nohup ./consul agent -dev > nohup.log &

可以看到这是一个启动 Consul(启动什么不重要) 的脚本,脚本名字是 startup.sh ,运行时一直提示(在终端中输入 ./startup.sh 没有这个错误,双击 脚本文件 或者其替身都不行):
在这里插入图片描述
这里我有两个疑点:

  • 我还没有启动 consul,为什么会有一个 kill process 的提示。
  • 是否脚本执行完后的进程无法驻留后台,即使 nohup + & 也不行。

后来有时间突然对第一个疑点有了灵感,我要把查询进程 ID 的那一行在脚本中打印结果:

#!/bin/bash

set -e

############### 新加的脚本内容 --- begin ###############
echo "运行进程:"

ps -ef | grep consul | grep -v grep

exit 0
############### 新加的脚本内容 --- end ###############

pids=$(ps -ef | grep consul | grep -v grep | awk '{print $2}')

for pid in $pids; do
	echo "kill process: $pid"
	kill -9 $pid
done

cd $(dirname $0)

nohup ./consul agent -dev > nohup.log &

这一看结果不就一目了然了(虽然不知道,但可能是 zsh 的问题,centos 这么写没事),把脚本的获取进程 ID 在加上一个 grep 过滤(看 grep -v startup.sh),最终为:

#!/bin/bash

set -e

pids=$(ps -ef | grep consul | grep -v grep | grep -v startup.sh | awk '{print $2}')

for pid in $pids; do
	echo "kill process: $pid"
	kill -9 $pid
done

cd $(dirname $0)

nohup ./consul agent -dev > nohup.log &

问题不大,就是定位比较麻烦,现在终于解决了。


http://www.kler.cn/news/362569.html

相关文章:

  • Python 代码实现对《红楼梦》文本的词频统计和数据可视化
  • 从0到1学习node.js(path模块以及HTTP协议)
  • 各种包管理工具(npm,pip,yum,brew...)换镜像源
  • 可编辑38页PPT | 柔性制造企业数字化转型与智能工厂建设方案
  • 算法笔记day05
  • PYQT5 简单项目实践
  • 微信小程序设置弹框底下内容不能移动 滚动(滚动穿透问题)
  • 【鼠鼠学AI代码合集#8】线性神经网络
  • Vue封装组件并发布到npm仓库
  • 【ROS2】Qt和ROS混合编程:多继承QObject和rclcpp::Node
  • LRU算法
  • ATmega128定时器里面的定时器和外部中断配置
  • ElasticSearch基本概念
  • 微软主动出击,“钓”出网络钓鱼者
  • 关于在ubuntu服务器上无法守护长链接命令的问题
  • 自动化数据库管理:如何通过存储过程动态创建 MySQL 对象
  • Python中的字符串修剪:strip()、lstrip() 和 rstrip()
  • 1U服务器和Hyper-V虚拟机使用记录
  • [Linux网络编程]06-I/O多路复用策略---select,poll分析解释,优缺点,实现IO多路复用服务器
  • 设计模式基础知识以及典型设计模式总结(上)
  • Spring Boot驱动的汽车销售网站架构优化
  • ansible playbooks
  • 关于WPF项目降低.Net版本
  • Unity性能优化2【脚本篇】
  • 电脑改ip地址怎么弄?一键操作与多种方法详解
  • 存储过程(SQL)