怎么开启linux服务器的sftp服务
可以按照如下方式进行设置:
1、创建sftp组,groupadd sftp,创建完成之后使用cat /etc/group命令组的信息。
2、创建一个sftp用户mysftp并加入到创建的sftp组中,同时修改mysftp用户的密码,useradd -g sftp -s /bin/false mysftp,passwd mysftp 。
3、新建/data/sftp/mysftp目录,并将它指定为mysftp组用户的home目录,mkdir -p /data/sftp/mysftp,usermod -d /data/sftp/mysftp mysftp。
4、编辑配置文件/etc/ssh/sshd_config,vi /etc/ssh/sshd_config,将如下这行用#符号注释掉。
5、设置Chroot目录权限,chown root:sftp /data/sftp/mysftp,chmod 755 /data/sftp/mys。
6、新建一个目录供stp用户mysftp上传文件,这个目录所有者为mysftp所有组为sftp,所有者有写入权限所有组无写入权限,mkdir /data/sftp/mysftp/upload,chown mysftp:sftp /data/sftp/mysftp/upload,chmod 755 /data/sftp/mysftp/upload。
7、关闭selinux并重启sshd服务,然后测试。
8、在其他服务器上进行验证,sftp 用户名@ip地址。
1、sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。
2、其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。
Linux关闭和重启系统一般使用相同的命令可以实现。
在Linux系统下常用在关机/重启命令有shutdown、halt、reboot和init,但每个命令的内部工作过程是不同的。
1.shutdown命令
Shutdown命令可以安全地关闭系统,有些用户会使用直接断电源的方式来关闭计算机,这是十分危险的。Linux与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,在有的系统中甚至会损坏硬件设备。
如果在系统关机前使用shutdown命令,系统管理员会通知所有登录的用户系统将要关闭,并且login命令会被冻结,即新的用户不能再登录。直接关机或者延迟一定的时间才关机都是可能的,还可能重启。
shutdown命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,此参数可以是一个精确的时间,也可以是从现在开始的一个时间段。精确时间的格式是hh:mm,表示小时和分钟,时间段由“+”和分钟数表示。系统执行该命令后,会自动进行数据同步的工作。
(1)语法
shutdown [选项] [时间] [警告信息]
(2)选项说明
-k:并不真正关机,只是发出警告信息给所有用户
-r:关机后立即重新启动
-h:关机后不重新启动
-f:快速关机,重启动时跳过fsck
-n:快速关机,不经过init程序
-c:取消一个已经运行的shutdown[-time]:设定关机前的时间
(3)例:立即关闭系统
#shutdown –h now
一、以非特权用户运行MySQL服务器
在讨论如何启动MySQL服务器之前,让我们考虑一下应该以什么用户身份运行MySQL服务器。服务器可以手动或自动启动。如果你手动启动它,服务器以你登录Unix(Linux)的用户身份启动,即如果你用paul登录Unix并启动服务器,它用paul运行;如果你用su命令切换到root,然后运启动服务器,则它以root运行。然而,大多数情况下你可能不想手动启动服务器,最有可能是你安排MySQL服务器在系统引导时自动启动,作为标准引导过程的一部分,在Unix下,该引导过程由系统的Unix用户root执行,并且任何在该过程中运行的进程均以root权限运行。
你应该牢记MySQL服务器启动过程的两个目标:
你想让服务器以某个非root用户运行。一般地,你想限制任何运行进程的能力,除非确实需要root权限,而MySQL不需要。
你想让服务器始终以同一个用户运行,此时用一个用户而其他时候以另一个不同的用户运行服务器是很不方便的,这造成了为文件和目录以具有不同属主的数据目录下被创建,并可能导致服务器不能访问数据库或表,这看你以哪个用户运行。统一用同一个用户运行服务器是你避免这个问题。
要一个普通的非特权用户运行服务器,按照下列步骤:
选择一个用于运行服务器的用户,mysqld可以用任何用户运行。但在概念上较清晰的是为MySQL操作创建一个单独的用户。你也可以特别为MySQL选择一个用户组。本文使用mysqladm和mysqlgrp分别作为用户名和用户组名。
如果你已在自己的账号下安装好了MySQL且没有系统上的特殊管理权限,你将可能在你自己的用户ID下运行服务器。在这种情况下,用你自己的登录名和用户组代替mysqladm和mysqlgrp。
如果你在RedHat Linux上用rpm文件安装MySQL,该安装将自动创建一个名为mysql的账号,用该账号代替mysqladm。
如果必要,用系统通常的创建用户的过程创建服务器账号,你需要用root做它。
如果服务器在运行,停止它。
修改数据目录和任何子目录和文件的属主,这样使得mysqladm用户拥有它们。例如,如果数据目录是/usr/local/var,你可以如下设置mysqladm的属主(你需要以root运行这些命令):
#cd /usr/local/var
#chown -R mysqladmmysqlgrp
修改数据目录和任何子目录和文件的权限,使得它们只能由mysqladm用户访问。如果数据目录是/usr/local/var,你可以设置由mysqladm拥有的任何东西:
# cd /usr/local/var
# chmod -R go-rwx
当你设置数据目录及其内容的属主和模式时,注意符号连接。你需要顺着它们并改变它们指向的文件或目录的属主和模式。如果连接文件的目录位于不属于你的地方,会有些麻烦,你可能需要root身份。
在你完成了上述过程后,你应该确保总是在以mysqladm或root登录时启动服务器,在后者,确定指定--user=mysqladm选项,使服务器能将其用户ID切换到mysqladm(同时也适用于系统启动过程)。
--user选项在MySQL 322中引入,如果你有老版本,你可以使用su命令告诉系统在以root运行时在特定的用户下运行服务器。
二、启动服务器的方法
在我们确定了用于运行服务器的账号后,你可以选择如何安排启动服务器。你可以从命令行手动或在系统引导过程中自动地运行它。对于启动服务器由三种主要方法:
直接调用mysqld。
这可能是最不常用的方法,建议不要多使用,因此本文不详细介绍。
调用safe_mysqld脚本。
safe_mysqld试图确定服务器程序和数据目录的位置。然后用反映这些值的选项调用服务器。safe_mysqld将标准出错设备从服务器重定位到数据目录下的一个出错文件,使得有它的一条记录。在启动服务器后,safe_mysqld也监视它并且如果它死掉则重启它。safe_mysqld常用于BSD风格的Unix系统。
如果你以root或在系统引导期间启动sqfe_mysqld,出错日志由root拥有,这可能在你以后试图用一个非特权用户调用safe_mysqld时将导致“permission denied”(权限拒绝)错误,删除出错日志再试一下。
调用mysqlserver脚本。
这个脚本通过有意用于System V的启动和停止系统上的safe_mysqldmysqlserver来启动服务器,该系统包含几个包含在机器进入或退出一个给定运行级别时被点用的脚本目录。它可以用一个start或stop参数点用以表明你是想启动还是想停止服务器。
safe_mysqld脚本安装在MySQL安装目录的bin目录下,或可在MySQL源代码分发的scripts目录下找到。mysqlserver脚本安装在MySQL安装目录下的share/mysqld目录下或可以在MySQL源代码分发的support_files目录下找到。如果你想使用它们,你需要将它们拷贝到适当的目录下。
对BSD风格的系统(FreeBSD,OpenBSD等),通常在/etc目录下有几个文件在引导时初始化服务,这些文件通常有以“rc”开头的名字,且它有可能由一个名为“rclocal”的文件(或类似的东西),特意用于启动本地安装的服务。在这样的系统上,你可能将类似于下列的行加入rclocal文件中以启动服务器(如果safe_mysqld的目录在你的系统上不同,修改它即可):
if [ -x /usr/local/bin/safe_mysqld ]; then
/usr/local/bin/safe_mysqld &
fi
对于对于System V风格的系统,你可以通过将mysqlserver放在/etc下适当的启动目录下来安装它。如果你运行Linux并从一个RPM文件安装MySQL,这些已经为你做好了,否则将脚本安装在主启动目录下,并将指向它的连接放在适当的运行级别目录下。你也可以使脚本只能由root启动。
启动文件的目录布局各系统不同,所以你需要检查一下看看你的系统如何组织它们。例如在Linux PPC上,目录是/etc/rcd和/etc/rcd/rc3d,这样你可以这样安装脚本:
#cp mysqlserver /etc/rcd/initd
#cd /etc/initd
#chmod 500 mysqlserver
#cd /etc/rcd/rc3d
#ln -s /initd/mysqlserver S99mysql
在solaris上,主脚本目录是/etc/initd,并且运行级别目录是/etc/rd2d,所以命令看上去像这样:
#cp mysqlserver /etc/rcd/initd
#cd /etc/initd
#chmod 500 mysqlserver
#cd /etc/rc2d
#ln -s /initd/mysqlserver S99mysql
在系统启动时,S99mysql脚本将自动用一个start参数调用。如果你有chkconfig命令(Linux上有),你可以由它帮助安装mysqlserver脚本而不是象上面那样手工运行上述命令。
21 指定启动选项
如果你想在服务器启动时指定额外的启动选项,你可有两种方法。你可以修改你使用的启动脚本(safe_mysqld或mysqlserver)并直接在调用服务器的行上指定选项,或在一个选项文件中指定选项。建议你如果可能在一个全局选项文件中指定选项,它通常位于/etc/mycnf(Unix)或c:\mycnf(Windows)。
某些种类的信息无法以服务器选项指定。对于这些你可能需要修改safe_mysqld。例如,如果你的服务器不能正确选择本地时区而以GMT返回时间值,你可以设置TZ环境变量给它一个指示。如果你用safe_mysqld或mysqlserver启动服务器,你可以将一个时区设置加到safe_mysqld。找到启动服务器的行并在该行前加入下列命令:
TZ=US/Central
export TZ
上面命令的语法是Solaris的,对于其他系统语法可能不同,请查阅相关手册。如果你确实修改了你的启动脚本,要记住下次你安装MySQL时(如升级到新版本),你的修改将失去,除非你首先在别处复制了启动脚本。在安装了新版本后,比较新旧版本的脚本,看看你需要重建什么改变。
22 在启动时检查你的表
除了安排你的服务器在系统引导时启动,你可能要安装myisamchk和isamchk脚本,以在服务器启动前检查你的表。你可能在一个崩溃后重启,有可能表已经损害,在启动前检查它是一个发现问题的好方法。
三、停止服务器
要手工启动服务器,使用mysqladmin:
%mysqladmin shutdown
要自动停止服务器,你不需做特别的事情。BSD系统一般通过向进程发一个TERM信号停止服务,它们或者正确应答它或被粗鲁地杀死。mysqld在它收到这个信号时以终止作为应答。对于用mysqlserver启动服务器的System V风格的系统,停止进程将用一个stop参数调用该脚本,告诉服务器终止,当然假定你已安装了mysqlserver。
四、如果你不能连接服务器,如何重新获得对服务器的控制
在某些情况下,你可能由于不能连接它而手工重启服务器。当然,这有点矛盾。因为一般你通过连接服务器而手工关掉它,那么这种情况如何会出现。
首先,MySQL root口令可以已经设置为你不知道的值,这可能发生在你修改口令时,例如,如果你在输入新口令时偶然键入一个不可见的控制字符。你也可能忘记口令。
其次,连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysqlsock。如果套接字文件被删除了,本地客户就不能连接。这可能发生在你的系统运行一个cron任务删除了/tmp下的临时文件。
如果你因为丢失套接字文件而不能连接,你可以简单地通过重启服务器重新创建得到它。因为服务器在启动时重新创建它。这里的骗局是你不能用套接字建立连接因为它不见了,你必须建立一个TCP/IP连接,例如,如果服务器主机是pitsnakenet,你可以这样连接:
%mysqladmin -p -u root -h pitsnakenet shutdown
如果套接字文件被一个cron任务删除,问题将重复出现,除非你修改cron任务或使用一个或使用一个不同的套接字文件,你可以使用全局选项文件指定一个不同的套接字,例如,如果数据目录是/usr/local/var,你可以通过将下列行加入/etc/mycnf中,将套接字文件移到那里:
[mysqld]
socket=/usr/local/var/mysqlsock
[client]
socket=/usr/local/var/mysqlsock
对服务器和客户均指定路径名,使得它们都使用同一个套接字文件。如果你只为服务器设置路径,客户程序将仍然期望在原位置执行套接字,在修改后重启服务器,使它在新位置创建套接字。
如果你由于忘记root口令或已经将它设置为不同于认为的值而不能连接,你需要重新获得对服务器的控制,是你能再次设置口令:
中断服务器
如果你以root登录服务器主机,你可以用kill命令终止服务器。你可以使用ps命令或通过寻找服务器的PID文件(通常在数据目录中)找出服务器进程的ID。
最好是首先尝试用一个向服务器发出一个TERM信号的正常kill看它是否将以正常终止应答。这种方式下,表和日志将正确地被清空。如果服务器阻塞并且不应答一个正常终止信号,你可以用kill -9强制终止它。这是最后的手段了,因为这可能有未清空的修改,而且你冒着让表处于一个不一致状态的风险。
如果你用kill -9终止服务器,要确保在启动服务器前用myisamchk和isamchk检查你的表。
用--skip-grant-table选项重启服务器。
这告诉服务器不使用授权表验证连接,这允许你以root连接而无须口令。在你已经连接后,改变root口令。
用mysqladmin flush-privileges告诉服务器再次使用授权表启动
如果你的mysqladmin版本不认识flash-privileges,试一试reload。
五、运行多个服务器
大多数再一台给定的机器上运行单个MySQL服务器,但在很多情况下,运行多个服务器是很有用的:
你可能想测试一个服务器的新版本,而保留你正在运行的生产服务器。在这种情况下,你会运行不同的服务器代码。
操作系统一般限制每个进程的打开文件句柄数量。如果你的系统很难提高这个限制,运行多个服务器是解决限制的一种方法。在这种情况下,你可能运行统一服务器的多个实例。
ISP经常为其客户提供自己的MySQL安装,有必要涉及单独的服务器。在这种情况下,你可能运行同一版本的多个实例或不同版本,如果不同的客户想要不同版本的MySQL。
很自然地,运行多个服务器比只运行一个服务器要复杂得多。如果你安装多个版本,你不能在同一个地方安装所有东西。当服务器运行时,某些参数必须或很可能对每个服务器是唯一的,它们包括服务器在哪安装、其数据目录的路径名、TCP/IP端口和UNIX域套接字路径名以及用于运行服务器的UNIX账号(如果你不再同一账号下运行所有服务器)。如果你决定运行多个服务器,一定要注意你使用的参数,是你不至于丢失对所发生的事情的踪迹。
51 配置和安装多个服务器
如果你要运行不同版本的服务器而不是同一版本的多个实例,你必须在不同地点安装它们。如果你安装二进制分发(不用RPM),它们将安装在包含不同版本号的目录名下。如果你从源代码安装,最简单的方法是在每个版本运行configure配置MySQL安装过程中使用--with-prefix选项使得不同分发分开,这将使得所有东西安装在一个单独的目录下,你可以将目录域分发版本号联系起来,如,你可以象这样配置一个MySQL分发,其中version是MySQL版本号:
%configure --with-prefix=/usr/local/mysql-version
--with-prefix选项也决定了服务器的一个唯一数据目录。你可能想加上其它服务器特定的选项,如TCP/IP端口号和套接字路径名(--with-tcp-port和--with-unix-socket)。
如果你想运行同一版本服务器的多个实例,任何必须基于一个服务器特定设置的选项将需要在运行时指定。
52 多服务器的启动过程
启动多个服务器比使用一个服务器要复杂。因为safe_mysqld和mysqlserver均在单个服务器设置上工作得最好。建议你仔细研究一下safe_mysqld并用它作为你的启动过程的基础,使用你修改的版本,你能针对你自己的需要更精确地裁剪它。
你必须处理的一个问题是如何在选项文件(mycnf)中指定选项。对于多服务器,你不能对于每个不同的服务器设置使用/etc/mycnf,你只能对所有服务器相同的设置使用该文件。如果服务器有一个不同的编译进去的数据目录位置,你可以在每个服务器数据目录中的mycnf中指定所有服务器要使用的设置,而使用DATADIR/mycnf指定服务器特定的设置,这里DATADIR以服务器不同而不同。
另一种指定服务器选项的方法是用--default-file=path_name作为命令行的第一个选项,告诉服务器从名为path_name中的文件中读取选项,这样你可以把一个服务器选项放在一个对该服务器唯一的文件中,然后告诉服务器在启动时读取该文件。注意,如果你指定这个选项,将不使用通常的选项文件如/etc/mycnf的任何一个。
可以看看http://wwwlinuxprobecom/chapter-00html。
CentOS的启动流程总体顺序如下:
POST --> Boot Sequence --> bootloader(MBR) --> Kernel --> 加载rootfs --> switchroot --> /sbin /init --> (配置文件:/etc/inittab, /etc/init/conf) --> 根据init配置文件设置默认运行级别 --> 运行系统初始化脚本/etc/rcd/rcsysinit,完成系统初始化 --> 开启或关闭用户选定的对应运行级别下所对应的服务 --> 启动终端,打印登录提示符。
注:前面加粗部分代表内核空间的系统启动流程,后面未加粗部分代表用户空间的系统启动流程。
第一步:硬件启动过程
POST加电自检
主要实现的功能是检测各个外围硬件设备是否存在而且能够正常运行起来,实现这一自检功能的是固化在主板上的ROM(主要代表为CMOS)芯片上的BIOS(Basic Input/Output System)程序;例如BIOS会检测CPU、Memory以及I/O设备是否能够正常运行,如果是个人计算机的话可能还会检测一下显示器。只要一通电,CPU就会自动去加载ROM芯片上的BIOS程序,是这样来实现的。而检测完成之后就进行硬件设备的初始化。
选择启动设备以加载MBR
主要实现的功能是选择要启动的硬件设备,选择了之后就可以读取这个设备上位于MBR里头的bootloader了。这一步的实现是这样的:根据BIOS中对启动顺序的设定,BIOS自己会依次扫描各个引导设备,然后第一个被扫描到具有引导程序(bootloader)的设备就被作为要启动的引导设备。
MBR(Main Boot Record),是硬盘的0柱面,0磁道、1扇区(第一个扇区),称为主引导扇区,也称为主引导记录。它由三部分组 成:主引导程序(BootLoader)、硬盘分区表DPT(Disk Partition table)和硬盘有效标志(55AA)。
注:硬盘默认一个扇区大小为512字节。
第一部分,主引导程序(BootLoader)占446个字节,负责从活动分区中装载,并运行系统引导程序。
第二部分,硬盘分区表DPT占64个字节,有4个分区表项,每个分区表项占16个字节,硬盘中分区有多少以及每一个分区的大小都记 录在其中。
第三部分,硬盘有效标志,占2个字节,固定为55AA。如果这个标志位0xAA55,就认为这个是MB
第二步:GRUB引导阶段
不同的系统有不同的主引导程序(BootLoader)。Windows使用的是NTLDR(NT Loader,Windows NT系列操作系统)、Bootmgr(Boot Manager,Windows Vista,7,8,10),Linux一般使用的是grub(也叫grub legacy)和grub2。GRUB程序加载执行并引导kernel(内核)程序,其中有三个阶段,Grub引导阶段的文件都在/boot/grub/目录下。
stage1: 这一阶段执行的就是系统安装时预先写入到MBR的Bootloader程序,即是存放在MBR的前446字节里的程序。它的任务仅是读取(加载)硬盘的0柱面,0磁道,2扇区的内容(/boot/grub/stage1)并执行。
stage15: 这一阶段是Stage1阶段和Stage2阶段的桥梁,功能是加载stage2所在分区的文件系统驱动,让stage1中的bootloader能识别stage2所在分区的文件系统,此后grub程序便有能力去访问/boot/grub/stage2。
stage2: 这一阶段读取并解析grub的配置文件/boot/grub/grubcnf,根据配置文件加载内核镜像到内存中,通过initrd程序建立虚拟根文件系统,最后调用(转交)内核。
第三步:内部引导阶段
加载内核,核心开始解压,启动一些最核心的程序。为了让内核足够的轻小,硬件驱动并没放在内核文件里面。系统仅探测可识别到的所有硬件设备,加载硬件驱动程序,即加载真正的根文件系统所在设备的驱动程序(有可能会借助于ramdisk加载驱动),以只读方式挂载根文件系统,运行用户空间的第一个应用程序:/sbin/init。
第四步:init初始化阶段(系统初始化阶段)
虽然CentOS 5、CentOS 6以及CentOS 7的/etc/init配置文件内容各不相同,但总体的启动流程相同:/sbin/init --> 根据/etc/inittab配置文件设置默认运行级别 --> 运行系统初始化脚本/etc/rcd/rcsysinit,完成系统初始化 --> 关闭或启动用户选定的默认运行级别所对应的服务 。
对于CentOS 5来说,初始化程序init是SysV init,其配置文件为:/etc/inittab; 对于CentOS 6来说,初始化程序init是upstart,其配置文件为:/etc/inittab, /etc/init/ conf,也就是upstart将配置文件拆分成多个,在/etc/init/目录下以conf结尾的都是upstart风格的配置文件,而/etc/inittab仅用于设置默认运行级别; 对于CentOS 7来说,初始化程序init是systemd,其配置文件:/usr/lib/system/systemd/, /etc/systemd/system/ ;
具体执行过程:/sbin/init程序会读取/etc/inittab文件确认运行级别,然后执行/etc/rcd/rc脚本,根据确认的运行级别启动对应/etc/rcd/rc#d/目录下的服务(#为0~6),与此同时执行系统初始化脚本/etc/rcsysinit(软链接,指向/etc/rcd/rcsysinit),还会加载/etc/rclocal(软链接,指向/etc/rcd/rclocal文件)用户自定义服务(脚本)。
CentOS7中初始化进程变为了systemd,systemd即为system daemon,是Linux下的一种init软件,开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell系统开销的效果,最终代替现在常用的System V与BSD风格的init程序。与多数发行版使用的System V风格的init相比,systemd采用了以下的新技术:A采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;B用Cgroup代替PID来追踪进程,即使是两次fork之后生成的守护进程也不会脱离systemd的控制。
第五步:启动终端
根据前面获取的运行级别来启动终端,mingetty程序是用于启动终端的,它会调用登录程序login,这样就能显示出登录提示符了,类似mingetty这种用于打开终端的程序还有getty等。而如果默认运行级别为5,则会打开图形界面。
第一步:硬件启动过程
这一步和CentOS6差不多,详细请看11内容。
第二步:GRUB引导阶段
从这一步开始,CentOS6和CentOS7的启动流程区别开始展现出来了。CentOS7的主引导程序使用的是grub2,执行过程是先加载bootimg、coreimg两个镜像,再加载MOD模块文件,把grub2程序加载执行,接着解析配置文件/boot/grub/grubcfg,根据配置文件加载内核镜像到内存,之后构建虚拟根文件系统,最后转到内核。
CentOS7中使用命令进行配置,而不直接去修改配置文件了。grubcfg配置文件开头注释部分说明了由/etc/grubd/目录下文件和/etc/default/grub文件组成。改好配置后都需要使用命令grub2-mkconfig -o /boot/grub2/grubcfg,将配置文件重新生成。
第三步:内部引导阶段
这一步与CentOS6也差不多,加载驱动,切换到真正的根文件系统,唯一不同的是执行的初始化程序变成了/usr/lib/systemd/systemd。
第四步:init初始化阶段(系统初始化阶段)
CentOS7中我们的初始化进程变为了systemd。执行默认target配置文件/etc/systemd/system/defaulttarget(这是一个软链接,与默认运行级别有关)。然后执行sysinittarget来初始化系统和basictarget来准备操作系统。接着启动multi-usertarget下的本机与服务器服务,并检查/etc/rcd/rclocal文件是否有用户自定义脚本需要启动。最后执行multi-user下的gettytarget及登录服务,检查defaulttarget是否有其他的服务需要启动。
注意:/etc/systemd/system/defaulttarget指向了/lib/systemd/system/目录下的graphicaltarget或multiusertarget。而graphicaltarget依赖multiusertarget,multiusertarget依赖basictarget,basictarget依赖sysinittarget,所以倒过来执行。
unit对象:unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系统服务、监听socket、保存的系统快照以及其他与init相关的信息。(也就是CentOS6中的服务器启动脚本)
第五步:启动终端
systemd执行sysinittarget
systemd启动multi-usertarget下的本机与服务器服务
systemd执行multi-usertarget下面的/etc/rcd/rclocal
Systemd执行multi-usertarget下的gettytarget及登录服务
gettytarget是启动终端的systemd对象。如果到此步骤,系统没有指定启动图形桌面,到此就可以结束了,如果需要启动图形界面,要在此基础上启动桌面程序。
从 CentOS 7 版本之后,系统开始用 systemd 实现init进程,系统启动和服务器守护进程管理器功能,负责在系统启动或运行时,激活系统资源,服务器进程和其它进程。
unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系统服务、监听socket、保存的系统快照以及其它与init相关的信息。
32 system unit文件格式
/usr/lib/systemd/system:发行版打包者使用,每个服务最主要的启动脚本设置,类似于之前的/etc/initd/
/etc/systemd/system:系统管理员和用户使用,管理员建立的执行脚本,类似于/etc/rcNd/Sxx的功能,比上面目录优先运行
/lib/systemd/system::ubutun的对应目录
/run/systemd/system:系统执行过程中所产生的服务脚本,比上面目录优先运行
unit 格式说明:
service unit file文件通常由三部分组成:
Unit段的常用选项:
Service段的常用选项:
Install段的常用选项:
注意:对于新创建的unit文件,或者修改了的unit文件,要通知systemd重载此配置文件,而后可以选择重启。
首先在启动界面按e编辑启动参数,
将ro参数更改为rw init=/sysroot/bin/sh,按ctr + x启动系统
按下图执行命令更改root密码
0条评论