参考博主文章https://blog.csdn.net/u010976445/article/details/50819287
以Mac下杀死和重启pycharm程序为例编写脚本,使用的是python3.6环境
一、杀死进程
ps -ef | grep pycharm | awk '{print $2}' | xargs kill -9 # ps -ef | grep pycharm | awk '{print $2}' | xargs执行之后,会将所有含有pycharm都进程号列出来
二、启动进程
/Applications/PyCharm.app/Contents/MacOS/pycharm
三、创建一个shell文件,假设命名未re_s.sh,内容如下,作用是用来杀死进程,延时5s,启动进程 (|| 和&& 的区别,参考此博主的博客https://www.cnblogs.com/clam/archive/2012/12/17/2821684.html)
#!/bin/bash
echo 're start' `date` >> /Users/007/Desktop/test/log.log && # 日志中记录脚本开始时间
ps -ef | grep pycharm | awk '{print $2}' | xargs kill -9 || # 杀死进程,此处可以省略||,(用|| 而没用&& ,因为此命令运行后会出现kill: xxxx: No such process 错误,|| 的意思是出现错误后执行接下来的语句,而&&是没有错误的情况下执行接下来的语句)
sleep 5s && # 延时5s
/bin/bash /Users/007/Desktop/test/re_start.sh && # 启动进程
echo 're end' `date` >> /Users/007/Desktop/test/log.log # 写入日志
四、创建用来启动程序进程的脚本,这里假设命名为re_start.sh
#!/bin/bash
echo 'start' `date` >> /Users/007/Desktop/test/log.log &&
/Applications/PyCharm.app/Contents/MacOS/pycharm >>/Users/007/Desktop/test/log.log 2>&1 & # 守护进程的方式启动
echo 'end' `date` >> /Users/007/Desktop/test/log.log
五、都设置好之后,运行re_s.sh文件即可
注意:.sh文件需要加可执行权限,不过为了方便,一般使用chmod 777 xxx.sh,权限全加,也可以将四和五中的部分代码整合成一个shell脚本,如果要定时,可以使用crontab进行定时http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html
# 整合后的代码
#!/bin/bash
echo 're start' `date` >> /Users/007/Desktop/test/log.log && # 日志中记录脚本开始时间
ps -ef | grep pycharm | awk '{print $2}' | xargs kill -9 || # 杀死进程,此处可以省略||,(用|| 而没用&& ,因为此命令运行后会出现kill: xxxx: No such process 错误,|| 的意思是出现错误后执行接下来的语句,而&&是没有错误的情况下执行接下来的语句)
sleep 5s && # 延时5s
/Applications/PyCharm.app/Contents/MacOS/pycharm >>/Users/007/Desktop/test/log.log 2>&1 & # 守护进程的方式启动
echo 're end' `date` >> /Users/007/Desktop/test/log.log # 写入日志