1、使用&后台运行命令

&:将当前命令以后台的形式运行;

ps:查看正在运行的进程信息;

kill:杀掉某个进程;

1) 使用&后台运行

&加在一个命令的最后,可以把当前行的命令放在后台执行。注意&前面有空格。当非正常退出当前shell终端时,后台运行的update.sh也会结束。因为脚本在后台运行时,运行脚本的父进程是当前shell终端进程,关闭当前shell终端时,会发送hangup挂断信号给子进程,子进程收到hangup信号后也就退出。cjavapy@ubuntu:~$ sudo chmod 755 update.sh

cjavapy@ubuntu:~$ ./update.sh &

2) 使用nohup和&后台运行cjavapy@ubuntu:~$ nohup ./update.sh &

命令前加上nohup可以让你退出shell之后继续运行相应的进程。nohup就是忽略当前任务挂断信号。如果不想像上面一样退出,这样就可以解决。

nohup默认会把标准输出重定向到默认文件nohup.out中,可以自定义该输出文件,如下,cjavapy@ubuntu:~$ nohup ./update.sh >out.txt &

2、使用ctrl+z、jobs和bg后台运行

ctrl+z:将前台任务转后台并冻结;

bg:将后台冻结的任务再次运行起来;

fg:将后台任务重新转前台执行;

jobs:查看在后台运行的任务列表;

ctrl+z命令可以将当前的前台任务转后台,放到后台任务池中,前台窗口就变成非阻塞状态了,但转过去的任务在后台默认是冻结状态。这时需要用到bg命令,bg命令的功能就是将后台冻结的任务再次运行起来,但它需要一个任务ID号,而jobs命令就是查看所有任务状态的,包括ID号。cjavapy@ubuntu:~$ ./update.sh

[4]+ 已停止 ./update.sh

cjavapy@ubuntu:~$ jobs

[4]+ 已停止 ./update.sh

cjavapy@ubuntu:~$ bg 4

[4]+ ./update.sh &

[4]+ 已完成 ./update.sh

cjavapy@ubuntu:~$

3、使用Screen后台执行$> screen [-AmRvx -ls -wipe][-d ][-h ][-r ][-s ][-S ]

-A  将所有的视窗都调整为目前终端机的大小。

-d  将指定的screen作业离线。

-h  指定视窗的缓冲区行数。

-m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。

-r  恢复离线的screen作业。

-R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。

-s  指定建立新视窗时,所要执行的shell。

-S  指定screen作业的名称。

-v  显示版本信息。

-x  恢复之前离线的screen作业。

-ls或--list  显示目前所有的screen作业。

-wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

1) 常用screen参数screen -S yourname -> 新建一个叫yourname的session

screen -ls -> 列出当前所有的session

screen -r yourname -> 回到yourname这个session

screen -d yourname -> 远程detach某个session

screen -d -r yourname -> 结束当前session并回到yourname这个session

2) 在screen中Session常用快捷键ctrl+a d ->detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。

ctrl+a z -> 把当前session放到后台执行,用 shell 的 fg 命令则可回去。

ctrl+a w -> 显示所有窗口列表

ctrl+a k -> kill window,强行关闭当前的 window

ctrl+a [ -> 进入 copy mode,在 copy mode 下可以回滚、搜索、复制就像用使用 vi 一样

C-b Backward,PageUp

C-f Forward,PageDown

H(大写) High,将光标移至左上角

L Low,将光标移至左下角

0 移到行首

$ 行末

w forward one word,以字为单位往前移

b backward one word,以字为单位往后移

Space 第一次按为标记区起点,第二次按为终点

Esc 结束 copy mode

ctrl+a ] -> paste,把刚刚在 copy mode 选定的内容贴上

3) 常用操作

创建会话(-m 强制):screen -dmS session_name

关闭会话:screen -X -S [session # you want to kill] quit

查看所有会话:screen -ls

进入会话:screen -r session_name

4、查看后台任务命令

1) jobs查看当前终端任务信息cjavapy@ubuntu:~$ jobs -l

[1]- 3427 运行中 nohup ./update.sh &

[2]+ 3445 运行中 nohup python &

jobs -l选项可以多显示一个PID信息。

第一列:任务序号,注意并不是PID。

第二列:+ 号表示当前顶部任务,- 号其次任务,没符号是其他任务。

第三列:PID(上面例子中,默认情况下没有PID)。

第四列:状态,四种(运行中,已停止,已完成,已杀死)。

第五列:任务名称(即刚才运行的命令)。

2) ps全局查看进程信息cjavapy@ubuntu:~$ ps -ef |grep gedit

root 3591 2566 0 00:29 pts/0 00:00:00 sudo gedit

root 3592 3791 0 00:29 pts/0 00:00:00 gedit

cjavapy 3321 2566 0 00:44 pts/0 00:00:00 grep --color=auto gedit

第一列:用户名

第二列:PID

第三列:父级PID

最后一列:命令名称或路径

ps -ef

e:表示列出所有进程,f:表示输出完整格式。

5、关闭后台任务命令

任务运行完毕会自行退出;通过交互方式退出(包括传入参数对话,界面操作,终端ctrl+c等);通过进程管理工具杀掉;

kill命令:属于进程管理工具,可以杀掉进程。

1) 使用任务号kill进程cjavapy@ubuntu:~$ jobs

[2] 已停止 nohup firefox

[3]- 已停止 nohup sudo gedit

cjavapy@ubuntu:~$ kill -9 %2

[2] 已停止 nohup firefox

cjavapy@ubuntu:~$ jobs

[2] 已杀死 nohup firefox

[3]- 已停止 nohup sudo gedit

2) 通过PID来kill进程cjavapy@ubuntu:~$ ps -ef |grep gedit

root 3731 2566 0 20:23 pts/0 00:00:00 sudo gedit

root 3732 3791 0 20:29 pts/0 00:00:00 gedit

cjavapy 3429 2566 0 20:59 pts/0 00:00:00 grep --color=auto gedit

cjavapy@ubuntu:~$ sudo kill -9 3731

[sudo] cjavapy 的密码:

[3]- 已杀死 nohup sudo gedit

相关文档:

linux强制关闭程序快捷键,Linux 使用、ctrl+z或screen后台运行命令程序的方法相关推荐

  1. Linux在后台运行python程序、脚本程序、可执行程序等,关闭终端仍可保持程序运行

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 Linux在后台运行python程序.脚本程序.可执行程序等,关闭终端仍可保持程序运行 文章目录: 1 为什么需要后台运 ...

  2. linux查看 后台运行的程序看不出来,linux后台运行、关闭和查看程序的方法

    一.关闭终端后,后台依然运行的程序的方法 nohup python main.py & (其中python main.py就是我们要运行的程序) 用这个命令,关闭终端后,在另一个终端查看运行的 ...

  3. linux关闭后台运行命令,linux后台运行、关闭、查看后台任务常用命令

    一.& 加在一个命令的最后,可以把这个命令放到后台执行,如: [root@bqh-01 ~]# watch -n 3 "sh 1.sh"  #每3s在后台执行一次1.sh脚 ...

  4. linux下bash脚本常用的十个技巧:显示执行脚本花费的时间,在脚本退出时杀死后台运行的程序,在脚本退出时跳出循环,读取命令行参数来决定循环次数

    文章目录 1.显示执行脚本花费的时间 2.在脚本退出时杀死后台运行的程序 3.在脚本退出时跳出循环 4.读取命令行参数来决定循环次数 1.显示执行脚本花费的时间 网址:bash - How to ge ...

  5. linux+后台运行+nohup,Linux后台运行命令集(、fg、bg、jobs、nohup、ctrl + z)

    Linux后台运行命令集(&.fg.bg.jobs.nohup.ctrl + z) 1).& 命令或进程最后加上"&",可以把此操作放到后台执行: 2).c ...

  6. Linux后台运行Java程序命令详解

    nohup java -jar -Xms512m -Xmx512m app3.jar > /var/log/java/app3.log 2>&1 & 上面是后台运行Java ...

  7. linux下后台启动切换目录,如何让Linux下后台运行的程序到前台来

    满意答案 wc34071209 2016.12.24 采纳率:53%    等级:10 已帮助:719人 linux前后台任务切换方法: 1.在Linux终端运行命令的时候,在命令末尾加上 & ...

  8. Linux——让程序在后台运行(四种方法+使用推荐)

    目录 一.第一种方法(加"&"符号) 二.第二种方法(nohup命令)  三.第三种方法(screen命令)   四.第四种方法(systemctl命令)   五.总结 六 ...

  9. Linux后台运行python程序并输出到日志文件

    后台运行python程序并标准输出到文件 现在有test.py程序要后台部署, 里面有输出内容 使用命令: nohup python -u test.py > test.log 2>&am ...

最新文章

  1. mysql thread safe_Windows环境下完全手工配置Apache、MySQL和PHP(Thread Safe)
  2. 浅谈Nginx负载均衡与F5的区别
  3. amqp rabbitmq_通过Spring Integration和RabbitMQ获得高可用性的AMQP支持的消息通道
  4. 【渝粤教育】国家开放大学2018年春季 7218-21T医学伦理学(本) 参考试题
  5. 总帐明细账对账不平数据库修改
  6. Java:实现文件批量导入导出实践(兼容xls,xlsx)
  7. 成年人的生活到底有多心酸?
  8. java8 collections_关于Jdk7与Jdk8对Collections进行分组的区别
  9. Silverlight轻量级查询对比
  10. 免费压缩视频大小最佳方法?
  11. 基于Python飞机票销售系统 毕业设计-附源码141432
  12. 【爆笑】句经典流行俏皮语【爆笑】[
  13. Qt框架与STL库之间的巅峰对决:差异、优缺点及适用场景
  14. 数字实现千分位分隔符
  15. C语言----取反~
  16. Spyder IPython窗口提示RuntimeError: Could not open file .../deploy.prototxt
  17. Python3[爬虫实战] scrapy爬取汽车之家全站链接存json文件
  18. 具有DPP-4抑制活性的新型氨甲基联苯衍生物
  19. hmm模型工具htk在windows上的安装
  20. 数理统计——生物统计学的数学基础

热门文章

  1. python正则表达式提取文本中的电话号码和邮箱
  2. Google GMS Crash 优化方案
  3. Ubuntu下lede源码的下载与编译
  4. 活动二维码怎么制作?如何将活动内容做成二维码图片?
  5. 重邮计算机专业取得奖项,重邮邹宇航:保研北大,囊括国内外40余个重量级奖项的科创达人...
  6. htpps安装证书检查提示“错误: 服务器缺少中间证书”
  7. 自定义EL表达式的函数
  8. 淘宝/天猫/1688拍立淘API接口(以图搜商品API接口,图片搜索API接口,图片搜索商品API接口)代码对接教程
  9. 希捷移动硬盘Backup Plus Portable初始化及加密
  10. 神经网络中矩阵求导术的应用