linux系统中如何关闭后台运行的sh脚本,我写了一个一键启动所有软件的sh脚本:start_all.sh,如下图。
每个软件都有各自的启动脚本,start_adapter.sh,start_server.sh这种,而且加了&,都是后台运行,想知道怎么关闭单独的某个软件的脚本? 越简单的越好,通过sh可以实现吗?该怎么写呢?
软件单独的start_adapter的内容如下,基本都是差不多的内容。
linux系统中如何关闭后台运行的sh脚本,我写了一个一键启动所有软件的sh脚本:start_all.sh,如下图。
每个软件都有各自的启动脚本,start_adapter.sh,start_server.sh这种,而且加了&,都是后台运行,想知道怎么关闭单独的某个软件的脚本? 越简单的越好,通过sh可以实现吗?该怎么写呢?
软件单独的start_adapter的内容如下,基本都是差不多的内容。
你这里面脚本重名较多。不能直接查杀,还需定位到运行目录,以防误杀
下面的示例是查杀/home/occ-pis/adpter/dataAdapter目录下运行的start_adapter.sh
思路:
1.定位到全部运行的start_adapter.sh脚本,并找到PID
2.基于PID找到程序运行的目录
3.筛选出指定目录下的进程
4.匹配出进程号,并进行查杀
示例:kill_dataAdapter.sh
ps -ef | grep "start_adapter.sh" | grep -v grep | awk '{print $2}' | xargs -l1 -i ls -ahl /proc/{}/cwd | grep "/home/occ-pis/adpter/dataAdapter" |grep -Po '/proc/\d+/cwd' | grep -Po '\d+' | xargs -l1 -i kill -9 {}