首页 > 系统相关 >Linux后台运行程序

Linux后台运行程序

时间:2023-01-15 15:23:19浏览次数:43  
标签:Ctrl screen runoob 程序 会话 Linux 后台 进程

我们在日常使用脚本中难免会遇到需要一直挂这的脚本,这里就需要用到Linux中如何让脚本后台运行的方法。这里有3种方法供参考。

如何后台运行脚本

方法1:nohup

在执行命令前面加nohup但是CTRL+C就会失效
语法格式:

nohup Command [ Arg … ] [ & ]

参数说明:
Command:要执行的命令。

Arg:一些参数,可以指定输出文件。

&:让命令在后台执行,终端退出后命令仍旧执行。

nohup ping www.baidu.com &

这样就在后台挂上了
查看进程ping

jobs #查看任务

image-20230115145541132

重新进入后台运行的程序

fg "编号"

image-20230115145949266

如果要退出这个界面就直接CTRL+Z

image-20230115150507903

继续执行进程

image-20230115150607604

ps -aux | grep "进程名字也可以是文件"

上面看到的是36640 进程号

Linux.png

ps -aux | grep "文件名"
  • a : 显示所有程序
  • u : 以用户为主的格式来显示
  • x : 显示所有程序,不区分终端机
    杀死进程用kill -9 加进程号
kill -9 36640

Linux.png
可以看到已杀死
以下命令在后台执行 root 目录下的 runoob.sh 脚本,并重定向输入到 runoob.log 文件:

nohup /root/runoob.sh > runoob.log 2>&1 &

2>&1 解释:
将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。

  • 0 – stdin (standard input,标准输入)
  • 1 – stdout (standard output,标准输出)
  • 2 – stderr (standard error,标准错误输出)

方法2:setsid

查看进程可以看到分支

pstree

它可以把自己换成一个父进程

方法3:screen

安装screen:

安装screen
#centos系统安装命令
yun install screen
#Debian/Ubuntu安装命令
apt-get install screen

他是一个终端模拟器
创建一个进程

screen -dmS "进程名字自己取"

查看会话

screen -list

连接会话

screen -r "会话名称"
查看进程
ps -ef | grep [名字]

kill -9 [PID] //杀死对应PID的进程

1.启动新的screen会话

#创建名为为sillgirl

screen -S sillgril
#然后就可以在里面操作了一个新的终端
./sillgril

2.退出当前screen会话:

按Ctrl+a 再按 d, 即可退出screen, 此时程序仍在后台执行

3.查看当前已有的screen会话:

输入:screen -ls

参考:

⾸先⽤screen -ls查看你想要选的screen:
如果他的状态是Detached的,我们需要输⼊
screen -r <screen的pid>
来进⼊这个screen ,
或者输入
screen -rd <screen的名称>
如果他的状态是Attached的,我们就要输⼊
screen -d <screen的pid>
来使他”Dettached”,
然后再输⼊s
creen -r <screen的pid>
来进⼊这个screen。(必须先detached,否则是进不去的)

4.窗口操作:

Ctrl+a+w: 展示当前会话中的所有窗口;

Ctrl+a+c: 创建新窗口;

Ctrl+a+n: 切换至下一个窗口;

Ctrl+a+p: 切换至上一个窗口;

Ctrl+a+num: 切换至编号为num的窗口;

Ctrl+a+k: 杀死当前窗口;

5. 删除某个会话:

screen -S your_screen_name -X quit
或者
screen -X -S <screen的id> quit

按CTRL+A+D 退出screen  后台还是在运行

标签:Ctrl,screen,runoob,程序,会话,Linux,后台,进程
From: https://www.cnblogs.com/superwinner/p/17053551.html

相关文章

  • 从嵌入式linux到android应用开发
      时间过得很快,转眼之间已经到新公司一个月了。虽然学到了一些移动开发的知识,但是觉得离我的目标还很远,完全没能达到我想要的水平。以前产品都是自己主导的,需要完成什么,计......
  • 初探linux子系统集之i2c子系统(一)
          I2c子系统在进公司来的时候就学习过了,可是那是还不是很熟悉linux中的i2c子系统,就没有细看。记得当初很想熟悉linux中的各种总线驱动,想专门写一个关于总线驱......
  • 初探linux子系统集之led子系统(三)
         世界杯结束了,德国战车夺得了大力神杯,阿根廷最终还是失败了。也许3年,5年,或者10年后,人们就不知道巴西世界杯的亚军是谁,但是总是会记得冠军是谁。就像什么考试,比......
  • 初探linux子系统集之led子系统(二)
             巴西世界杯,德国7比1东道主,那个惨不忍睹啊,早上起来看新闻,第一眼看到7:1还以为点球也能踢成这样,后来想想,点球对多嘛6比1啊,接着就是各种新闻铺天盖地的来了......
  • 和菜鸟一起学linux总线驱动之i2c死锁问题
        不知不觉中已经有好几个月没有写点东西了,懒了就是懒了,说是忙着想把产品做得更好,都是借口,每天花一点时间来写点东西确实很不错,自己也坚持了很久很久,只不过今年以......
  • 初探linux子系统集之led子系统(一)
         就像学编程第一个范例helloworld一样,学嵌入式,单片机、fpga之类的第一个范例就是点亮一盏灯。对于庞大的linux系统,当然可以编写一个字符设备驱动来实现我们需......
  • 和菜鸟一起学linux之initramfs方式启动
    关于initramfs       initramfs在编译内核的同时被编译并与内核连接成一个文件,它被链接到地址__initramfs_start处,与内核同时被加载到ram中。initramfs被解析处理后......
  • Linux后台运行
    title:Linux后台运行date:2022-09-0312:51:35tags:-Linuxcategories:-Linux如何后台运行脚本方法1:nohup在执行命令前面加nohup但是CTRL+C就......
  • 和菜鸟一起学linux之常见错误的解决和常用命令
    1、错误提示:make:警告:检测到时钟错误。您的创建可能是不完整的。   解决方法:当前编译目录下,命令行输入:find.-typef-exectouch{}\;2、SSH生成密钥:ssh-keygen;SSH......
  • 初探linux子系统集之写在前言
                           ......