linux S+进程 如何 激活

作者&投稿:荣姜 (若有异议请与网页底部的电邮联系)
linux怎么查询进程和进程的id~

用top -u 命令查看进程以及PID。
命令如下:
$ top -u

PID — 进程idUSER — 进程所有者PR — 进程优先级NI — nice值。负值表示高优先级,正值表示低优先级VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RESRES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATASHR — 共享内存大小,单位kbS — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程%CPU — 上次更新到现在的CPU时间占用百分比%MEM — 进程使用的物理内存百分比TIME+ — 进程使用的CPU时间总计,单位1/100秒COMMAND — 进程名称(命令名/命令行)

一、在Linux中,如果要让进程在后台运行,一般情况下,我们在命令后面加上&即可,实际上,这样是将命令放入到一个作业队列中了:

$ ./test.sh & [1] 17208 $ jobs -l [1]+ 17208 Running ./test.sh &
二、对于已经在前台执行的命令,也可以重新放到后台执行,首先按ctrl+z暂停已经运行的进程,然后使用bg命令将停止的作业放到后台运行:

$ ./test.sh [1]+ Stopped ./test.sh $ bg %1 [1]+ ./test.sh & $ jobs -l [1]+ 22794 Running ./test.sh &
三、但是如上方到后台执行的进程,其父进程还是当前终端shell的进程,而一旦父进程退出,则会发送hangup信号给所有子进程,子进程收到hangup以后也会退出。如果我们要在退出shell的时候继续运行进程,则需要使用nohup忽略hangup信号,或者setsid将将父进程设为init进程(进程号为1)

$ echo $$ 21734 $ nohup ./test.sh & [1] 29016 $ ps -ef | grep test 515 29710 21734 0 11:47 pts/12 00:00:00 /bin/sh ./test.sh 515 29713 21734 0 11:47 pts/12 00:00:00 grep test
$ setsid ./test.sh & [1] 409 $ ps -ef | grep test 515 410 1 0 11:49 ? 00:00:00 /bin/sh ./test.sh 515 413 21734 0 11:49 pts/12 00:00:00 grep test
四、上面的试验演示了使用nohup/setsid加上&使进程在后台运行,同时不受当前shell退出的影响。那么对于已经在后台运行的进程,该怎么办呢?可以使用disown命令:

$ ./test.sh & [1] 2539 $ jobs -l [1]+ 2539 Running ./test.sh & $ disown -h %1 $ ps -ef | grep test 515 410 1 0 11:49 ? 00:00:00 /bin/sh ./test.sh 515 2542 21734 0 11:52 pts/12 00:00:00 grep test
五、另外还有一种方法,即使将进程在一个subshell中执行,其实这和setsid异曲同工。方法很简单,将命令用括号() 括起来即可:

$ (./test.sh &) $ ps -ef | grep test 515 410 1 0 11:49 ? 00:00:00 /bin/sh ./test.sh 515 12483 21734 0 11:59 pts/12 00:00:00 grep test
注:本文试验环境为Red Hat Enterprise Linux AS release 4 (Nahant Update 5),shell为/bin/bash,不同的OS和shell可能命令有些不一样。例如AIX的ksh,没有disown,但是可以使用nohup -p PID来获得disown同样的效果。

六、还有一种更加强大的方式是使用screen,首先创建一个断开模式的虚拟终端,然后用-r选项重新连接这个虚拟终端,在其中执行的任何命令,都能达到nohup的效果,这在有多个命令需要在后台连续执行的时候比较方便:

$ screen -dmS screen_test $ screen -list There is a screen on: 27963.screen_test (Detached) 1 Socket in /tmp/uscreens/S-jiangfeng. $ screen -r screen_test

S 为可中断的睡眠状态,他在等待相应的条件,才能够从睡眠中唤醒,人工没法干预,除非你采取killall xmyinfafor.....sh 可以杀死这个脚本。


西城区19454339609: linux如何激活网卡? -
衅古康斯: 激活步骤写如下 1、输入:netconfig ip地址 service network start 进入IP配置画面,输入IP、子网掩码、网关后,确定. 2、回到命令行界面,输入: ifdown eth0 ifup eth0 网卡生效,网络配置成功. 让Linux开机自动激活网卡 方法一 : vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改 ONBOOT=yes 方法二 : 在/etc/rc.d/rc.local 里面加入 ifup eth0 或 ifconfig eth0 up

西城区19454339609: linux操作系统的详细启动过程,谢谢(硬件启动的先后顺序) -
衅古康斯: 当用户打开PC的电源,BIOS开机自检,按BIOS中设置的启动设备(通常是硬盘)启动, 接着启动设备上安装的引导程序lilo或grub开始引导Linux,Linux首先进行内核的引导, 接下来执行init程序,init程序调用了rc.sysinit和rc等程序,rc.sysinit和...

西城区19454339609: 如何修复Linux引导 -
衅古康斯: 修复Linux操作系统的GRUB方法如下: 1.首先我们从BIOS里把启动顺序改为从CD-ROM启动,放入LINUX的第一张盘 2.在重启后,在boot:提示符下输入linuxrescue然后回车 3.接着就会提示选择鼠标和键盘,一般选择系统默认的即可;还有是不是从网络启动,一般不用从网路启动. 4.以上的步骤大家按提示操作即可,不要作什么改动 5.这样,在进入命令提示界面后键入:grub-install/dev/hda后回车进行安装MRB 6.安装完后重起就可以正常启动了!

西城区19454339609: linux 进程唤醒的问题
衅古康斯: int main(int argc,char *argv[]) { int fd,i,count =0,nloop=10,zero=0,*ptr; sem_t mutex; fd = open("log.txt",O_RDWR | O_CREAT,S_IRWXU); write(fd,&zero,sizeof(int)); ptr = mmap(NULL,sizeof(int),PROT_READ | PROT_WRITE,MAP_SHARED,...

西城区19454339609: linux 进程消失如何让它,在自动启动,谁知道,告诉我 -
衅古康斯: 前台进程开启 df -k(举例) 关闭 crtl +c 后台进程可以用ps -ef 看进程号比如进程为monitor 开启 monitor& 关闭 kill -9 进程号.学习linux基本命令,推荐《linux就该这么学》!

西城区19454339609: Linux下S+是什么进程状态?还有D+等等一类? -
衅古康斯: D Uninterruptible sleep (usually IO) S Interruptible sleep (waiting for an event to complete)+ is in the foreground process group 直接 man ps 查找STAT就知道了

西城区19454339609: linux怎么查询进程和进程的id -
衅古康斯: 输入top 命令 pid就是进程id 如果查看某进程 可以 ps axu|grep 进程名称 或者id

西城区19454339609: linux shell中特殊变量 怎么使用 -
衅古康斯: $0 正在被执行命令的名字.对于shell 脚本而言,这是被激活命令的路径$n 该变量与脚本被激活时所带的参数相对应.n 是正整数,与参数位置相对应 ($1,$2...)$# 提供脚本的参数号 $* 所有这些参数都被双引号引住.若一个脚本接收两个参数,$* 等于 $1$2$@ 所有这些参数都分别被双引号引住.若一个脚本接收到两个参数,$@ 等价于 $1$2$? 前一个命令执行后的退出状态 $$ 当前shell 的进程号.对于shell 脚本,这是其正在执行时的进程 ID$! 前一个后台命令的进程号$- 显示shell使用的当前选项,与 set命令功 能相同

西城区19454339609: linux ps命令显示一个特定的进程信息,如下说明 -
衅古康斯: 只查看该进程:ps -ef | grep 11345 查看该进程打开的文件:lsof -p 11345 查看内存分配:lcat /proc/11345/maps 查看堆栈:pstack 11345 查看发出的系统调用:strace -p 11345 查看调用库函数:ltrace -p 11345 …… 应该够用了吧

西城区19454339609: linux怎样设置开机自动激活网卡配置 -
衅古康斯: 打开Linux中的终端(命令行工具),依次执行以下操作:1. 键入cd /etc/sysconfig/network-scripts/,回车2. 键入ls,可列出所有的配置文件3. 用文本编辑器打开你要激活的网卡对应的配置文件,比如vi ifcfg-eth14. 修改ONBOOT=Yes,保存即可.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网