linux系统中通常一个进程启动时都会打开哪些文件

作者&投稿:蛮瞿 (若有异议请与网页底部的电邮联系)
linux系统下如何从后台启动进程.~

你得查看后台存在的进程 #jobs

#fg

#bg

两个命令是调入前台和后台的命令

在命令后面加上一个 &
比如:
rm -rf /tmp/ &
linux 技巧:让进程在后台可靠运行的几种方法
weibogoogle+用电子邮件发送本页面
我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?下面举了一些例子, 您可以针对不同的场景选择不同的方式来处理这个问题。

当用户打开PC的电源,BIOS开机自检,按BIOS中设置的启动设备(通常是硬盘)启动,
接着启动设备上安装的引导程序lilo或grub开始引导Linux,Linux首先进行内核的引导,
接下来执行init程序,init程序调用了rc.sysinit和rc等程序,rc.sysinit和rc当完成系
统初始化和运行服务的任务后,返回init;init启动了mingetty后,打开了终端供用户登
录系统,用户登录成功后进入了Shell,这样就完成了从开机到登录的整个启动过程。


加载内核

LILO启动之后,如果你选择了Linux作为准备引导的操作系统,第一个被加载的东西就是内核。请记住此时的计算机内存中还不存在任何操作系统, PC(因为它们天然的设计缺陷)也还没有办法存取机器上全部的内存。因此,内核就必须完整地加载到可用RAM的第一个兆字节之内。为了实现这个目的,内核是被压缩了的。这个文件的头部包含着必要的代码,先设置CPU进入安全模式(以此解除内存限制),再对内核的剩余部分进行解压缩。

执行内核

内核在内存中解压缩之后,就可以开始运行了。此时的内核只知道它本身内建的各种功能,也就是说被编译为模块的内核部分还不能使用。最基本的是,内核必须有足够的代码设置自己的虚拟内存子系统和根文件系统(通常就是ext2文件系统)。一旦内核启动运行,对硬件的检测就会决定需要对哪些设备驱动程序进行初始化。从这里开始,内核就能够挂装根文件系统(这个过程类似于Windows识别并存取C盘的过程)。内核挂装了根文件系统之后,将启动并运行一个叫做 init的程序。

注意:在这里我们故意略去了Linux内核启动的许多细节,这些细节只有内核开发人员才感兴趣。如果你好奇的话,可以访问http://www.redhat.com:8080地址处的 “Kernel Hackers Guide”。

init进程

init进程是非内核进程中第一个被启动运行的,因此它的进程编号PID的值总是1。init读它的配置文件/etc/inittab,决定需要启动的运行级别(Runlevel)。从根本上说,运行级别规定了整个系统的行为,每个级别(分别由0到6的整数表示)满足特定的目的。如果定义了 initdefault级别,这个值就直接被选中,否则需要由用户输入一个代表运行级别的数值。

输入代表运行级别的数字之后,init根据/etc/inittab文件中的定义执行一个命令脚本程序。缺省的运行级别取决于安装阶段对登录程序的选择:是使用基于文本的,还是使用基于X-Window的登录程序。

rc命令脚本程序

我们已经知道,当运行级别发生改变时,将由/etc/inittab文件定义需要运行哪一个命令脚本程序。这些命令脚本程序负责启动或者停止该运行级别特定的各种服务。由于需要管理的服务数量很多,因此需要使用rc命令脚本程序。其中,最主要的一个是/etc/rc.d/rc,它负责为每一个运行级别按照正确的顺序调用相应的命令脚本程序。我们可以想象,这样一个命令脚本程序很容易变得难以控制!为了防止这类事件的发生,需要使用精心设计的方案。

对每一个运行级别来说,在/etc/rc.d子目录中都有一个对应的下级目录。这些运行级别的下级子目录的命名方法是rcX.d,其中的X就是代表运行级别的数字。比如说,运行级别3的全部命令脚本程序都保存在/etc/rc.d/rc3.d子目录中。

在各个运行级别的子目录中,都建立有到/etc/rc.d/init.d子目录中命令脚本程序的符号链接,但是,这些符号链接并不使用命令脚本程序在 /etc/rc.d/init.d子目录中原来的名字。如果命令脚本程序是用来启动一个服务的,其符号链接的名字就以字母S打头;如果命令脚本程序是用来关闭一个服务的,其符号链接的名字就以字母K打头。

许多情况下,这些命令脚本程序的执行顺序都很重要。如果没有先配置网络接口,就没有办法使用DNS服务解析主机名!为了安排它们的执行顺序,在字母S 或者K的后面紧跟着一个两位数字,数值小的在数值大的前面执行。比如:/etc/rc.d/rc3.d/S50inet就会在 /etc/rc.d/rc3.d/S55named之前执行(S50inet配置网络设置,S55named启动DNS服务器)。

存放在/etc/rc.d/init.d子目录中的、被符号链接上的命令脚本程序是真正的实干家,是它们完成了启动或者停止各种服务的操作过程。当 /etc/rc.d/rc运行通过每个特定的运行级别子目录的时候,它会根据数字的顺序依次调用各个命令脚本程序执行。它先运行以字母K打头的命令脚本程序,然后再运行以字母S打头的命令脚本程序。对以字母K打头的命令脚本程序来说,会传递Stop参数;类似地对以字母S打头的命令脚本程序来说,会传递 Start参数。

编写自己的rc命令脚本

在维护Linux系统运转的日子里,肯定会遇到需要系统管理员对开机或者关机命令脚本进行修改的情况。有两种方法可以用来实现修改的目的:

● 如果所做的修改只在引导开机的时候起作用,并且改动不大的话,可以考虑简单地编辑一下/etc/rc.d/rc.local脚本。这个命令脚本程序是在引导过程的最后一步被执行的。

● 如果所做的修改比较细致,或者还要求关闭进程使之明确地停止运行,则需要在/etc/rc.d/init.d子目录中添加一个命令脚本程序。这个命令脚本程序必须可以接受Start和Stop参数并完成相应的操作。

第一种方法,编辑/etc/rc.d/rc.local脚本,当然是两种方法中比较简单的。如果想在这个命令脚本程序中添加内容,只需要使用喜欢的编辑器程序打开它,再把打算执行的命令附加到文件的末尾就可以了。这对一两行的修改来说的确很便利。

如果确实需要使用一个命令脚本程序,这时必须选择第二个方法。编写一个rc命令脚本程序的过程并不像想象中那么困难。我们下面就给出一个例子,看看它是怎样实现的(顺便说一句,你可以把我们的例子当作范本,按照自己的需要进行修改和添加)。

假设你打算每隔60分钟调用一个特殊的程序来弹出一条消息,提醒自己需要从键盘前面离开休息一会儿,命令脚本程序将包括下面几个部分:

● 关于这个命令脚本程序功能的说明(这样就不会在一年之后忘记它);

● 在试图运行它之前验证这个命令脚本程序确实存在;

● 接受start和stop参数并执行要求的动作。

参数给定后,我们就可以编写命令的脚本程序。这个程序很简单,大家可以自己编写一下,我在这里就不给出了。

编写好新的命令脚本程序之后,再从相关的运行级别子目录中加上必要的符号链接,来控制这个命令脚本程序的启动或者停止。在我的印象中,只想让它在运行级别3或者运行级别5中启动,原因是我认为只有这两个运行级别才是日常工作的地方。最后,希望这个命令脚本程序在进入运行级别6(重启动)的时候被关闭。

激活或者禁止服务项目

有的时候会发现,在引导的时候并不需要某个特定的服务被启动。如果你正在考虑使用Linux替换Windows NT的文件和打印服务器,就更是如此。

我们已经知道,在特定的运行级别子目录中给符号链接改个名称,就可以让该服务不被启动,如把其名称的第一个字母由S改为K。一旦熟练掌握了命令行和符号链接,就会发现这是激活或者禁止服务的最快办法。

在学习这个改名方法的时候,可能会觉得图形化的操作界面ksysv比较容易掌握。虽然它原来是设计使用在KDE环境里的,但在 Red Hat Linux 7.2下缺省安装的GNOME环境里也运行得很好。如果想启动它,只需简单地打开一个xterm窗口,并输入ksysv命令就可以了。屏幕上会出现一个窗口,其中列出了能够修改的全部参数,需要时还包括在线帮助。

警告:如果是在一个现实中的系统上学习本文的知识,要多多运用常识。当试着对启动脚本程序进行修改的时候,要记住所做的修改可能会造成你的系统不能正常工作,而且无法采用重启动的方法恢复。不要在正常运转的系统上实验新的设置,对你准备修改的文件要全部进行备份。最重要的是,在手边要准备一张引导盘以防不测

这个差别非常大,有的会打开很多,有的则一个都不打开(程序本身除外)。比较多被打开的是配置文件。

打开的文件跟这个进程有关,你可以找到这个进行的PID然后

lsof | grep PID

nit进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序


Linux中的换行符它们的重要性linux换行符
Linux系统在操作文本文件时,换行符的使用非常重要,它是将行文本从一行分割到另一行的标识符,有时还是一个特殊字符串,将行文本分隔开形成另一行,或多行文本分割开来以显示段落或表单。Linux系统中通常有两种换行符,即CR(Carriage Return)和LF(Line Feed)。CR字符,也称为回车字符,是将光标从当...

nginx安装路径
一、答案 Nginx的安装路径通常位于操作系统的特定目录下。在Linux系统中,通常安装在`\/usr\/local\/nginx`目录;在Windows系统中,默认安装路径可能会根据安装时的设置,一般位于程序文件的相应目录下,例如`C:\\nginx`。二、详细解释 1. Linux系统下的安装路径 在Linux操作系统中,使用包管理器安装Nginx时,...

在Linux操作系统中,外部设备文件通常放在( )目录中。
【答案】:A \/dev用于存放外部设备文件的目录。\/lib:系统库文件。\/etc:系统主要的配置文件几乎都放置到这个目录内。\/bin:可执行的二进制文件目录。常见的Linux目录所存放的文件内容需要了解

Linux 系统中一般常用的指令有哪些?
Linux管理文件和目录的命令    命令 功能 命令 功能  pwd 显示当前目录 ls 查看目录下的内容  cd 改变所在目录 cat 显示文件的内容  grep 在文件中查找某字符 cp 复制文件  touch 创建文件 mv 移动文件  rm 删除文件 rmdir 删除目录 1.1 pwd命令 该...

linux里面有很多以 .d 结尾的目录,d 代表什么意思?daemon or dir...
linux里面有很多以 .d 结尾的目录,.d是表示directory,目录的意思。在Linux系统中通常为了保持对原有配置方式的兼容,而增加的.d结尾目录,如: \/etc\/X11\/xorg.conf 这原本是个文件,现在也有了一个\/etc\/X11\/xorg.conf.d这样的目录,显卡驱动的相关设置原本是放在\/etc\/X11\/xorg.conf这个文件中的,...

linux rar解压缩命令
rar是日常中常用的压缩命令,在Linux系统中通常比较常用的是 tar 命令,而 rar 命令则是 Windows 中比较常用。语法:tar [主选项 + 辅选项] 文件或目录 参考例子:将etc.rar 解压命名:rar x etc.rar unrar -e etc.tar 参数:-z : 使用 gzip 来压缩和解压文件 -v : --verbose 详细的列出...

linuxscpr后面的r是什么意思
也就是说,具有相应权限的用户可以打开这个文件并读取其中的内容。如果文件没有读权限,用户将无法查看文件内容。因此,"r"在这里指的是文件权限中的一个重要组成部分,确保了文件和目录的安全性和可访问性。总的来说,"linuxscpr后面的r"在Linux系统中通常表示该文件对于拥有相应权限的用户是可读的。

Linux文件压缩和解压缩命令使用详解
在Linux系统中,我们通常使用的文件压缩命令有:bunzip2 , bzip2 , cpio , gunzip , gzip ,split(切割文件) , zgrep(在压缩文件中寻找匹配的正则表达式), zip ,unzip, tar ,rar。   最后四个是我比较常用的,今天的笔记就写这四个的好了。   1、tar: tar命令:tar [选项...] [FILE]...  ...

tmp进程是什么意思?
tmp进程(或者称为tmpfs)是Linux系统中的一个临时文件系统,通常用于在内存中创建临时文件。由于tmpfs文件系统直接存储于内存中,所以在读写临时文件时速度非常快,而且在重启或关机后,tmpfs文件系统中的所有数据都会被清空。tmp进程的作用主要就是为了在临时文件处理时提供一个高效且快捷的解决方案。tmp进程...

Linux系统中有哪几种文件类型?
1、纯文本文件:这是Unix系统中最多的一种文件类型,之所以称为纯文本文件,是因为内容可以直接读到数据,比如数字、字母等。设置文件几乎都属于这种文件类型。2、二进制文件:系统其实仅认识且可以执行二进制文件。Linux中的可执行文件就是这种格式的。3、数据格式的文件:有些程序在运行过程中,会读取...

海陵区17736254456: linux系统中通常一个进程启动时都会打开哪些文件 -
甫肤外科: 这个差别非常大,有的会打开很多,有的则一个都不打开(程序本身除外).比较多被打开的是配置文件.

海陵区17736254456: linux中如何查看某一进程的启动时间 -
甫肤外科: 在Linux下,如果需要查看进程的启动时间, 常用ps aux命令,但是ps aux命令的缺陷在于只能显示时间到年、日期、或者时间, 无法具体到年月日时分秒.如果需要查看某个进程的具体启动时间, 使用 ps -p PID -o lstart

海陵区17736254456: linux中进程的三种启动方式 -
甫肤外科: 不知道你要求的启动方式是从什么角度说.通常可以用rc[0-3].d下加自动启动脚步,或者用用户登录直接运行进程,或者在运行进程后面加“&”符号.

海陵区17736254456: 简述linux进程的启动、终止的方式以及如何进行进程的查看.
甫肤外科: 在Linux中启动一个进程有手工启动和调度启动两种方式: (1)手工启动 用户在输入端发出命令,直接启动一个进程的启动方式.可以分为: ①前台启动:直接在SHELL中输入命令进行启动. ②后台启动:启动一个目前并不紧急的进程,如打印进程.

海陵区17736254456: 2. 在Linux中进程有哪几种状态,每种状态代表的含义是什么? -
甫肤外科: Linux内核中定义了以下几种状态: #define TASK_RUNNING 0 #define TASK_INTERRUPTIBLE 1 #define TASK_UNINTERRUPTIBLE 2 #define TASK_ZOMBIE 4 #define TASK_STOPPED 8 其中: TASK_RUNNING是就绪态,进程当前只等待...

海陵区17736254456: linux开机启动会依次加载哪些脚本? -
甫肤外科: 1、相关基础知识点 1)redhat的启动方式和执行次序是: 加载内核 执行init程序/etc/rc.d/rc.sysinit # 由init执行的第一个脚本/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式/etc/rc.d/rc.local #相应级别服务启动之后、在执行该文件(其...

海陵区17736254456: linux操作系统进程管理的主要特点?多谢 -
甫肤外科: Linux操作系统包括如下三种不同类型的进程,每种进程都有其自己的特点和属性: 交互进程:由一个shell启动的进程.交互进程既可以在前台运行,也可以在后台运行. 批处理进程:这种进程和终端没有联系,是一个进程序列. 守护进程:Linux系统启动时启动的进程,并在后台运行. 上述三种进程各有各的作用,使用场合也有所不同.

海陵区17736254456: 简述Linux系统中的进程分为哪两类?分别以什么方式启动? -
甫肤外科: 分为独立进程和非独立进程. 一般情况下,在/etc/init.d这个目录中看到脚本都是独立进程的脚本,可以使用server 脚本名 start 来启动, 在/etc/xinetd.d目录中存放的都是非独立进程,可以使用以下两个命令启动 chkconfig 非独立进程名 on service xinetd restart

海陵区17736254456: Linux 下如何结束指定进程 -
甫肤外科: 一般linux使用kill来结束进程 Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令.通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须用kill命令来终止,我们就需要先使用...

海陵区17736254456: 请简述Red Hat Linux 9的启动过程? -
甫肤外科: 1)、Linux的启动过程要以下几个阶段:1、POST后读取硬盘MBR中的启动引导程序.2、启动引导程序负责引导硬盘中的操作系统.(如用lilo,或grub程序引导操作系统.)3、Linux内核程序负责操作系统启动前期的工作,并进一步加载系统...

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