分页: 1 / 1
在shell脚本中杀死进程
发表于 : 2021-10-22 13:13
由 百草谷居士
备份 fcitx-rime 词库时,需要先杀死 fcitx 进程。手工操作时,先
这时候会列出三四个进程号,然后 sudo kill xxx yyy zzz ,杀死这些进程后,才能使用 rime_dict_manager 完成备份用户词库的任务。
现在想使用脚本完成这个任务,请问,如何在 shell 脚本中杀死 fcitx 的相关进程?
Re: 在shell脚本中杀死进程
发表于 : 2021-10-22 14:18
由 astolia
用killall或pkill
Re: 在shell脚本中杀死进程
发表于 : 2021-10-22 14:31
由 百草谷居士
这是我写的脚本:
代码: 全选
cd ~/.config/fcitx/rime
ps -A|grep fcitx
ps -A|grep fcitx|cut -c 1-7|xargs -t sudo kill
sleep 2
rime_dict_manager -e luna_pinyin ~/data/rime用户词库$(date +%Y%m%d).txt
fcitx-autostart&
cd ~
目前有两个问题:
第一,出现提示:Date: try "date -d @1634884172" if you are using GNU date ***
第二,无法回到 ~ 目录。
Re: 在shell脚本中杀死进程
发表于 : 2021-10-22 16:55
由 onlylove
如果是bash,可以用 -x 参数调试,
不过貌似你的问题
第一个错可能是取时间的时候出错了
第二个,因为上一步取时间出错了,所以脚本可能停了,可以用$?看下上一条命令的执行结果
或者加个 echo什么的看看执行到哪里了
Re: 在shell脚本中杀死进程
发表于 : 2021-10-22 17:02
由 百草谷居士
词库备份完成,生成的文件名也是预期的。
下面一句的fcitx也重新启动。
date 部分可能只是个警告信息。但是单独在命令行使用 date +%Y%m%d 没有任何警告信息。
fcitx-autostart& 执行后没有处于一个等待状态,需要按下回车键,返回命令行提示符。但并没有执行下面的 cd ~
Re: 在shell脚本中杀死进程
发表于 : 2021-10-22 17:17
由 百草谷居士
astolia 写了: ↑2021-10-22 14:18
用killall或pkill
哈哈,竟然一直不知道这两个命令。可以直接使用 进程名 来终止进程。方便!
Re: 在shell脚本中杀死进程
发表于 : 2022-01-21 11:09
由 mainmaster
cat killme.sh
#!/bin/bash
echo $1
ps -ef | grep $1 | awk '{printf "%s ",$2}' | xargs kill -9