linux bash脚本kill进程,并在kill后再次启动它
我用不同的配置文件在我的电脑上运行几个chrome浏览器。配置文件的名称类似于“prof1”、“prof2”和“prof3”。现在我需要制作一个脚本,杀死特定的chrome进程并重新启动它 我不能使用killall命令,因为我需要具体说明我要杀死哪个chrome浏览器,以及我是否使用kill命令脚本在kill命令后退出 我试过这样的方法:linux bash脚本kill进程,并在kill后再次启动它,linux,bash,kill-process,Linux,Bash,Kill Process,我用不同的配置文件在我的电脑上运行几个chrome浏览器。配置文件的名称类似于“prof1”、“prof2”和“prof3”。现在我需要制作一个脚本,杀死特定的chrome进程并重新启动它 我不能使用killall命令,因为我需要具体说明我要杀死哪个chrome浏览器,以及我是否使用kill命令脚本在kill命令后退出 我试过这样的方法: #!/bin/bash kill -9 `ps ax | grep -i prof1 | awk '{print $1}'` & sleep 2
#!/bin/bash
kill -9 `ps ax | grep -i prof1 | awk '{print $1}'` &
sleep 2
export DISPLAY=:0.0
/usr/bin/chromium-browser --restore-last-session --user-data-dir=/path/to/prof1/ %U &
这个脚本工作得很好,但是在kill命令之后它退出(说“Killed”),浏览器就再也不能启动了。Kill命令没有任何“安静”选项。没有必要尝试2>&1,因为“已终止”输出来自终端,而不是来自stderr/stdout。我试过“set-e”和其他很多东西,但运气不好
有任何帮助/提示吗?您可以使用的是
pkill
的--full
/-f
标志,它将匹配整个命令行:
$ sleep 1d &
[1] 23335
$ pkill -f 'sleep 1d'
[1]+ Terminated sleep 1d
您不应该使用。是否
导出显示=:0.0/usr/bin/chromium浏览器--还原上一个会话--用户数据目录=/path/to/prof1/%U&
单独工作?不要使用ps | grep
使用pgrep
。我怀疑你可能正在寻找并自杀。