〖Linux〗以后台方式启动/结束指定程序/命令(不受 exit 或点击窗口关闭按钮等终端退出操作的影响)
#!/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 != ]]; then
echo "can't get root, exit."
exit
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 >& & # run as root
else
nohup $cmd > /dev/null >& & # run as other
fi
sleep 0.1
exist=$(get_process "$cmd")
echo "run [ $(echo $exist) ] at background."
fi
〖Linux〗以后台方式启动/结束指定程序/命令(不受 exit 或点击窗口关闭按钮等终端退出操作的影响)的更多相关文章
- linux下memcached的启动/结束的方式
当前项目中,linux下memcached的启动/结束的方式 默认情况下memcached安装到/usr/local/bin下. 进入安装目录,启动memcached:/usr/local/memca ...
- linux系统下memcached启动正常但程序无法连接的问题解决
在虚拟机linux安装好memcached之后,试着用java程序连接一下memcached的服务端,但却出现了以下错误 com.schooner.MemCached.SchoonerSockIOPo ...
- Linux下main函数启动过程【程序员自我修养笔记】【自用】
1. 入口函数和程序初始化 1.1 程序从main开始吗? 当程序执行到main函数的第一行时,很多事情都已经完成了: [证1]如下是一段C语言代码: 代码中可以看到,在程序刚刚执行到main的时候, ...
- 〖Linux〗不重复启动某应用程序的脚本
cmd="/home/scue/bin/ipclient $ipclient" exist=$(ps aux | grep -v 'grep' | grep "$cmd& ...
- Win+数字快速启动/切换指定程序
Windows键+数字,可以快速启动任务栏上的程序 按下按下Win+4桌面将切换到排序第4的程序:页也就是谷歌浏览器. 今天刚发现这个小功能. 文章来源:外星人来地球 欢迎关注,有问题一起学习欢迎 ...
- 和菜鸟一起学linux之initramfs方式启动
关于initramfs initramfs在编译内核的同时被编译并与内核连接成一个文件,它被链接到地址__initramfs_start处,与内核同时被加载到ram中.initramfs被解析处理后原 ...
- [C++]Linux之间隔时间内循环执行指定程序
#include<time.h> #include<unistd.h>//usleep(num) #include<stdio.h> #include<std ...
- linux将80端口映射到指定端口命令
1.添加一个端口映射 将80端口映射到8088端口命令如下: iptables -t nat -I PREROUTING -p tcp --dport 80-j REDIRECT --to-port ...
- 使程序在Linux下后台运行,程序运行前后台切换
一.为什么要使程序在后台执行 我们计算的程序都是周期很长的,通常要几个小时甚至一个星期.我们用的环境是用putty远程连接到日本Linux服务器.所以使程序在后台跑有以下三个好处: 1:我们这边是否关 ...
随机推荐
- win7电脑遇到端口被占用的情况该如何查看并将其关闭
转载:http://www.jb51.net/os/windows/203315.html 端口是我们在进行远程或者打印机等都会遇到的,但是有很多用户会遇到端口被占用的情况,有很多人不知道该如何查看电 ...
- 最快的BT软件rtorrent Step by Step指南
原文地址:http://forum.ubuntu.org.cn/viewtopic.php?t=165069 rtorrent是linux下最快的bt下载软件,由于支持DHT网络,可以很好的于迅雷和B ...
- VS2010 打包生成exe文件后 执行安装文件出现 TODO:<文件说明>已停止工作并已关闭
一.VS2010 打包生成exe文件后 执行安装文件出现 TODO:<文件说明>已停止工作并已关闭 TODO: <文件说明>已停止工作 原因: 打包的时候在文件系统中建立了 ...
- jQueryEasyUI创建菜单主页
function addTab(title,path){ funcTab.tabs('add',{ title: title, fit:true, href:'${ctx}/login/forword ...
- Matlab注释多行和取消多行注释的快捷键
matlab里注释符号是%,只是单行注释,可是没有多行注释符号,就像C/C++/Java中都有多行注释符号/* */. 如果利用单行注释的方式手工注释一段程序会很麻烦,matlab软件自带快捷键支持 ...
- 启明星会议室预定系统Outlook版开始支持Exchange2013与Office365版
版本启明星会议室预定系统支持Exchange2013与微软云服务Office365版.(注意:Exchange2007与Exchange2010也适合此版本) 1.安装 首页,安装类似启明星普通的会议 ...
- ELK kibana查询与过滤
在kibana中,可通过搜索查询过滤事务或者在visualization界面点击元素过滤. 创建查询 在Discover界面的搜索栏输入要查询的字段.查询语法是基于Lucene的查询语法.允许布尔运算 ...
- C语言:通过指针函数输出二维数组中每个学生的成绩
// // main.c // Pointer_function // // Created by ma c on 15/8/2. // Copyright (c) 2015年 bjsxt. ...
- linux下永久添加静态路由
在linux下永久添加静态路由有两种方法: 添加路由的命令: 1,route add route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0 ...
- Eclipse上传代码到GitHub
平时工作学习中难免会在Github搜索一下开源的Android代码, Android系统本身的代码就是托管在GitHub上,如果平时随手做了一个Demo,托管在云盘感觉不入流,如果平时自己一时兴起写了 ...