〖Linux〗以后台方式启动/结束指定程序/命令(不受 exit 或点击窗口关闭按钮等终端退出操作的影响)
2013-09-01 21:01
916 查看
#!/bin/bash - #=============================================================================== # # FILE: bgcmd # # USAGE: 方式1 -- $ ./bgcmd # 启动指定后台程序 # 方式2 -- $ ./bgcmd off # 结束指定后台程序 # # DESCRIPTION: 后台运行程序/命令(类似于deamon进程) # # OPTIONS: --- # REQUIREMENTS: >> 按需要修改 cmd 和 need_root 这两个变量<< # BUGS: --- # NOTES: --- # AUTHOR: linkscue(scue), # ORGANIZATION: # CREATED: 2013年08月14日 22时04分38秒 HKT # REVISION: --- #=============================================================================== get_process(){ cmd="$1" ps aux | grep -v 'grep' | grep "$cmd" | awk '{print $2}' } kill_process(){ exist="$1" if [[ "$need_root" != "" ]]; then sudo kill $exist else kill $exist fi echo "process [ $(echo $exist) ] had killed." } #------------------------------------------------------------------------------- # cmd: 希望在后台执行的程序/命令 # need_root: 是否需要root权限执行 #------------------------------------------------------------------------------- need_root=true cmd="python -m SimpleHTTPSever 80" # get root, if need. if [[ "$need_root" != "" ]]; then sudo ls > /dev/null ret=$? if [[ $ret != 0 ]]; then echo "can't get root, exit." exit 1 fi fi # run cmd exist=$(get_process "$cmd") if [[ "$1" != "" ]] ; then # kill process kill_process "$exist" else if [[ "$exist" != "" ]]; then kill_process "$exist" fi if [[ "$need_root" != "" ]]; then sudo nohup $cmd >/dev/null 2>&1 & # run as root else nohup $cmd > /dev/null 2>&1 & # run as other fi sleep 0.1 exist=$(get_process "$cmd") echo "run [ $(echo $exist) ] at background." fi
相关文章推荐
- [Linux]在终端启动程序关闭终端不退出的方法
- Linux在终端启动程序关闭终端不退出的方法
- [Linux]在终端启动程序关闭终端不退出的方法
- Linux前台的程序转到后台执行(关闭终端而不杀死命令)
- Linux前台的程序转到后台执行(关闭终端而不杀死命令)
- Linux之nohup命令:实现退出终端后程序继续后台运行
- 4.Linux下nohup命令实现退出终端后程序继续后台运行
- linux nohup命令实现退出终端后程序继续后台运行
- 【转】Linux下nohup命令实现退出终端后程序继续后台运行
- [Linux]在终端启动程序关闭终端不退出的方法
- Linux前台的程序转到后台执行(关闭终端而不杀死命令)
- [Linux]在终端启动程序关闭终端不退出的方法
- [Linux]在终端启动程序关闭终端不退出的方法
- linux下程序的前、后台切换及让进程不受终端的影响
- Linux前台的程序转到后台执行(并且关闭终端而不杀死命令)
- linux 后台执行nohup 命令,终端断开无影响
- Java程序以后台方式在Linux上运行(nohup命令)
- 【整理】解决Linux关闭终端(关闭SSH等)后运行的程序或者服务自动停止【后台运行程序】
- Linux后台执行的方法 - 关闭、退出不影响
- 解决点击关闭按钮,应用程序退出时,系统爆出“集合已修改,可能无法执行枚举操作”异常的相关思路