问题一: 查看哪个进程占用了哪个端口、以及杀掉进程

1.查看占用端口: sudo lsof -i :80

lsof 命令 是 list open files的意思

  比如:

  lsof filename 显示打开指定文件的所有进程

  lsof -i 用以显示符合条件的进程情况(4、6、协议、:端口、 @ip )

2. 根据PID杀掉进程: sudo kill 1000  (进程号)

kill 命令 语法是 kill [信号或选项] PID(s)

  使用 kill -l 查看所有的信号

  比如杀掉一个进程是 kill SIGKILL PID 或者 kill -9 PID 这里的-9代表着 SIGKILL

另外还有pkill命令 ,是用来杀掉匹配名字的进程,可以用用正则匹配名字

还有killall 是杀掉所有同名的

问题二:让进程在后台运行 


开启终端执行一个较长的命令(或登录远程服务器执行命令),然后一关终端结果任务也终止了。但是我们的想法是让它在后台执行,而且关掉终端也不会终止。

关掉终端会终止任务的原因:当用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。所以解决办法就有两种途径:要么让进程忽略 HUP 信号,要么让进程运行在新的会话里从而成为不属于此终端的子进程。

解决命令:使用 nohup 或者 setsid

一、nohup

nohup 的使用是十分方便的,只需在要处理的命令前加上 nohup 即可,标准输出和标准错误缺省会被重定向到 nohup.out 文件中。可用">filename 2>&1"来更改缺省的重定向文件名。而在结尾 添加 ' & ' 这个字符可以让命令在后台运行

例如:

nohup python3 manage.py runserver .... &

这个进程的父id仍然是这个终端的pid。

二、setsid

setsid ping www.ibm.com


这个任务的父id是init进程的id 即 1,与上一个命令比较有所不一样。

另外:这里还有一个关于 subshell 的小技巧。我们知道,将一个或多个命名包含在“()”中就能让这些命令在子 shell 中运行中,从而扩展出很多有趣的功能,我们现在要讨论的就是其中之一。

例如

(ping www.ibm.com &)

会发现新提交的进程的父 ID(PPID)为1(init 进程的 PID),并不是当前终端的进程 ID。因此并不属于当前终端的子进程,从而也就不会受到当前终端的 HUP 信号的影响了。

出处: http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/

Linux使用小笔记<进程操作篇>的更多相关文章

  1. Linux使用小笔记<安装篇>

    问题一:在windows下删除ubuntu并修复引导windows启动. 1. 下载MBRFix工具,放在c盘,利用命令提示符,进入软件所在目录,cd c:\mbrfix 2.输入 MBRFix /d ...

  2. linux c学习笔记----进程创建(fork,wait,waitpid)

    1.pid_t fork(); (1)当一个进程调用了fork 以后,系统会创建一个子进程.这个子进程和父进程不同的地方只有他的进程ID 和父进程ID,其他的都是一样.就象符进程克隆(clone)自己 ...

  3. 进程操作篇atexit execl exit fprintf fscanf getpid nice get priority printf setpid system vfork wait waitpid

    atexit(设置程序正常结束前调用的函数) 相关函数 _exit,exit,on_exit 表头文件 #include<stdlib.h> 定义函数 int atexit (void ( ...

  4. Redis学习笔记-数据操作篇(Centos7)

    一.基本操作 1.插入数据 127.0.0.1:6379> set name cos1eqlg0 OK 这样就在redis中设置了一个key-value键值对 2.查询数据 127.0.0.1: ...

  5. JavaEE学习笔记---数据库操作篇

    测试JDBC和SQLServer的插入操作,源码如下: import java.sql.Connection;import java.sql.DriverManager;import java.sql ...

  6. Linux基础-简单的进程操作

    任务:查找一个名为firewall的进程,并且将其强制杀死 首先要使用ps -aux来查询firewall的进程ID(|grep firewall) 这样我们就得到了firewall的进程ID是653 ...

  7. linux shell 学习笔记--比较操作

    整数比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如:if [ "$a" -ne "$b&qu ...

  8. Linux命令学习笔记目录

    Linux命令学习笔记目录 最近正在使用,linux,顺便将用到的命令整理了一下. 一. 文件目录操作命令: 0.linux命令学习笔记(0):man 命令 1.linux命令学习笔记(1):ls命令 ...

  9. Linux实战教学笔记05:远程SSH连接服务与基本排错(新手扫盲篇)

    第五节 远程SSH连接服务与基本排错 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 远程连接LInux系统管理 1.1 为什么要远程连接Linux系统 在实际的工作场景中,虚拟机界面或物理 ...

随机推荐

  1. iOS 准备

    iOS 编程知识点 iOS 基础知识点 iOS 之 系统机制 Xcode 使用技巧 Mac 使用技巧 iOS 之 英语 iOS 之 编外知识点 iOS 知识库链接

  2. iOS 之 事件响应者链

    响应者链表示一系列的响应者对象.事件被交由第一个响应者对象处理,如果第一个响应者不处理,事件就沿着响应者链向上传递,交由下一个响应者(Next responder). View->ViewCon ...

  3. .hive命令的3种调用方式 以及源码

    安装 hive后 在命令行 如输入 Hive -h -后面随便输入.让让他报错进入命令提示界面 -d 定义一个变量 两种形式 -d A=B or --define A=B -e 执行sql语句  hi ...

  4. Python中执行系统命令常见的几种方法--转载

    Python中执行系统命令常见的几种方法 Python中执行系统命令常见的几种方法有: (1)os.system # 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 # 如果再命令行下执 ...

  5. PHP + Memcache 实现Session共享

    一.安装Memcache和PHP扩展 Windows下的Memcache安装:1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached2. 在终端(也即cmd ...

  6. WebRTC VoiceEngine使用简单Demo

    Google收购的GIPS公司的音频处理技术是很牛的,现在开源了,这么好的技术应该拿来用的,这里就简单的介绍一下怎样使用VoiceEngine,欢迎大家拍砖指导. WebRTC相关的VideoEngi ...

  7. android: activity切换之效果

    Activity是android应用的重要部分;为了提高用户的体验度,加了Activity之间切换的动画效果,现在介绍的一种切换动画: 是什么效果,大家自已动手测试一下便知道: 先看进入的动画: pa ...

  8. 解决使用Idea/Eclipse编写Hadoop程序包依赖问题

    解决使用Idea/Eclipse编写Hadoop程序包依赖问题 解决包依赖的一种简单粗暴方法就是, 把下载下来的Hadoop压缩包解压, 搜索里面所有的额jar包文件,然后复制到一个目录,在使用Ide ...

  9. HDU 3782 xxx定律

    xxx定律 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  10. Java中boolean类型到底占用多少字节

    虽然 Java 虚拟机定义了 boolean 这种数据类型,但是只对它提供了非常有限的支持.在 Java 虚拟机中没有任何供 boolean 值专用的字节码指令,在 Java 语言之中涉及到 bool ...