linux开机启动设置

合集下载

linux内核启用参数

linux内核启用参数

linux内核启用参数以Linux内核启用参数为标题的文章一、背景介绍Linux内核是操作系统的核心,负责管理计算机的硬件资源和提供系统调用接口。

在Linux系统中,通过启用不同的内核参数,可以对系统的行为进行调整和优化,以满足特定的需求和提高系统性能。

本文将介绍一些常用的Linux内核启用参数,并分析其作用和使用场景。

二、内核启用参数1. acpi=offACPI(高级配置与电源接口)是一种用于电源管理和设备配置的标准。

将acpi=off参数添加到内核启动参数中可以禁用ACPI功能。

在某些老旧的计算机硬件上,ACPI可能会导致系统崩溃或不稳定,此时可以使用该参数来解决问题。

2. nomodesetnomodeset参数用于禁用内核对显卡驱动的自动加载和切换。

在某些笔记本电脑或显卡驱动不兼容的情况下,系统可能无法正常启动或出现黑屏等问题。

使用nomodeset参数可以强制系统使用基本的VESA显卡驱动,以保证系统的稳定性。

3. noapicAPIC(高级可编程中断控制器)是用于管理中断信号的硬件设备。

在某些计算机上,APIC可能导致中断冲突或系统不稳定的问题。

通过添加noapic参数,可以禁用APIC功能,解决这些问题。

4. irqpollirqpoll参数用于解决某些计算机上的中断问题。

当系统无法正确识别硬件的中断信号时,会导致设备无法正常工作或系统崩溃。

通过添加irqpoll参数,系统会定期轮询中断信号,以确保中断的正确处理,提高系统的稳定性。

5. selinux=0SELinux(安全增强型Linux)是一种强制访问控制机制,用于提高系统的安全性。

但在某些情况下,SELinux可能导致系统的性能下降或应用程序无法正常运行。

通过将selinux=0参数添加到内核启动参数中,可以禁用SELinux功能,提高系统的运行效率。

6. mem=4Gmem参数用于限制系统可用的内存大小。

在某些情况下,系统可能无法正确识别或管理全部的内存容量,导致内存溢出或内存泄漏的问题。

linux 系统启动相关路径

linux 系统启动相关路径

linux 系统启动相关路径
在Linux 系统中,启动相关的路径通常包括以下几个:
1. /etc/init.d/:这个目录存放了系统中的服务脚本文件,这些脚本文件可以通过chkconfig 命令设置服务的运行级别,从而控制服务的启动和停止。

2. /etc/rc.d/:这个目录也存放了系统中的服务脚本文件,与/etc/init.d/ 目录类似,这些脚本文件也可以通过chkconfig 命令设置服务的运行级别。

3. /etc/rc.local/:这个文件是一个特殊的脚本文件,它在系统启动时自动执行,可以用来执行一些在启动过程中需要执行的操作,如挂载磁盘分区、启动网络等。

4. /etc/fstab/:这个文件记录了系统中需要挂载的文件系统信息,包括磁盘分区的设备名称、挂载点、文件系统类型、挂载选项等。

5. /etc/sysconfig/network-scripts/:这个目录存放了系统中网络服务的配置文件,包括网络接口、DNS 服务器、网关等信息。

6. /usr/bin/:这个目录通常包含了一些用户和应用程序使用的工具和脚本文件,例如ssh、scp、wget 等。

7. /usr/local/bin/:这个目录通常存放了用户自定义的命令和脚本文件,例如一些自己编写的工具和脚本文件。

8. /var/run/:这个目录存放了系统中运行的进程的信息,包括进程ID、父进程ID、挂载点等。

9. /var/log/:这个目录存放了系统中的日志文件,包括系统日志、应用程序日志等。

以上是一些常见的Linux 系统启动相关的路径和文件,具体路径和文件可能会因Linux 发行版和版本而有所不同。

Linux下添加脚本到开机自启动的方法

Linux下添加脚本到开机自启动的方法

Linux下添加脚本到开机自启动的方法Linux配置开机自启动执行脚本的方法有很多,这里分享两种方法,分别是修改/etc/rc.local方法和chkconfig管理设置的方法,均可实现Linux配置开机自启动执行脚本的功能!设置test.sh为开机要启动的脚本[root@oldboy scripts]# vim /server/scripts/test.sh[root@oldboy scripts]# cat /server/scripts/ test.sh#!/bin/bash/bin/echo $(/bin/date +%F_%T) >> /tmp/ test.log方法一:修改/etc/rc.local[root@oldboy ~]# ll /etc/rc.locallrwxrwxrwx. 1 root root 13 Mar 30 10:50 /etc/rc.local -> rc.d/rc.local修改/etc/rc.local文件[root@oldboy scripts]# tail -n 1 /etc/rc.local/bin/bash /server/scripts/test.sh >/dev/null 2>/dev/null重启系统,查看结果[root@oldboy ~]# cat /tmp/test.log2018-03-30_12:00:10方法二:chkconfig管理删除掉方法一的配置[root@oldboy ~]# vim /etc/init.d/test#!/bin/bash# chkconfig: 3 88 88/bin/bash /server/scripts/test.sh >/dev/null 2>/dev/null[root@oldboy ~]# chmod +x /etc/init.d/test添加到chkconfig,开机自启动[root@oldboy ~]# chkconfig --add test[root@oldboy ~]# chkconfig --list testtest 0:off 1:off 2:off 3:on 4:off 5:off 6:off 重启系统,查看结果[root@oldboy ~]# cat /tmp/test.log2018-03-30_12:00:102018-03-30_12:33:20操作成功关闭开机启动[root@oldboy ~]# chkconfig test off[root@oldboy ~]# chkconfig --list testtest 0:off 1:off 2:off 3:off 4:off 5:off 6:off 从chkconfig管理中删除test[root@oldboy ~]# chkconfig --list testtest 0:off 1:off 2:off 3:off 4:off 5:off 6:off [root@oldboy ~]# chkconfig --del test[root@oldboy ~]# chkconfig --list testservice test supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add test')。

Linux—添加开机启动(服务脚本)

Linux—添加开机启动(服务脚本)

Linux—添加开机启动(服务脚本)系统启动时需要加载的配置⽂件/etc/profile、/root/.bash_profile/etc/bashrc、/root/.bashrc/etc/profile.d/*.sh、/etc/profile.d/lang.sh/etc/sysconfig/i18n、/etc/rc.local(/etc/rc.d/rc.local)⼀、修改开机启动⽂件:/etc/rc.local(或者/etc/rc.d/rc.local)# 1.编辑rc.local⽂件[root@localhost ~]# vi /etc/rc.local# 2.修改rc.local⽂件,在 exit 0前⾯加⼊以下命令。

保存并退出。

/etc/init.d/mysqld start # mysql开机启动/etc/init.d/nginx start # nginx开机启动supervisord -c /etc/supervisor/supervisord.conf # supervisord开机启动/bin/bash /server/scripts/test.sh >/dev/null2>/dev/null# 3.最后修改rc.local⽂件的执⾏权限[root@localhost ~]# chmod +x /etc/rc.local[root@localhost ~]# chmod755 /etc/rc.local⼆、⾃⼰写⼀个shell脚本将写好的脚本(.sh⽂件)放到⽬录 /etc/profile.d/ 下,系统启动后就会⾃动执⾏该⽬录下的所有shell脚本。

三、通过chkconfig命令设置# 1.将(脚本)启动⽂件移动到 /etc/init.d/或者/etc/rc.d/init.d/⽬录下。

(前者是后者的软连接)mv /www/wwwroot/test.sh /etc/rc.d/init.d# 2.启动⽂件前⾯务必添加如下三⾏代码,否侧会提⽰chkconfig不⽀持。

Linux定时任务与开机自启动脚本(cron与crontab)

Linux定时任务与开机自启动脚本(cron与crontab)

Linux定时任务与开机⾃启动脚本(cron与crontab)开机⾃启动脚本⽹上常见的脚本开机⾃启⽅法是:假设要⾃启的脚本位于 /home/user/test.sh给脚本可执⾏的权限sudo chmod +x /home/user/test.sh将脚本⽂件放到 /etc/init.d/ ⽬录下sudo cp /home/user/test.sh /etc/init.d链接到/etc/rc.d/sudo ln -s /etc/init.d/start_my_app /etc/rc.d/这样在新的diban系统中可能不能⽣效,要LSB 兼容之类,脚本还要提供start, stop, restart, force-reload,等命令,具体参考因此这⾥推荐使⽤另外⼀种超级简单的⽅法:bash中输⼊(推荐以管理员的状态)crontab -e第⼀次使⽤这个的话,会提⽰选择⼀种编辑器,根据个⼈喜好选择吧。

然后就会进⼊对应编辑器的编辑界⾯,另起⼀⾏输⼊@reboot /home/user/test.shreboot 后⾯即脚本⽂件位置,然后保存即可。

Ok,脚本现在已经会在开机时⾃动运⾏了。

定时任务同样的bash⾥输⼊ crontab -e然后编辑界⾯加上具体的命令语句。

基本语法为# .---------------- minute (0 - 59)# | .------------- hour (0 - 23)# | | .---------- day of month (1 - 31)# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat# | | | | |# * * * * * user-name command to be executed⽐如:每天的凌晨4点半运⾏test.sh脚本30 04 * * * /home/user/test.sh每周的周⼀17:30执⾏test.sh脚本30 17 * * 1 /home/user/test.sh或间隔15分钟执⾏⼀次test.sh脚本*/15 * * * * /home/user/test.sh这个指在9:05 ⾄17:05的范围内,每个钟头的过5分会运⾏⼀次,⽐如10:05、11:05会运⾏05 09-17 * * * /home/user/test.sh关于bash中输⼊service --status-all会发现有个cron,。

linux设置systemctl启动脚本

linux设置systemctl启动脚本

linux设置systemctl启动脚本centos 7 服务的systemctl 脚本⼀般存在:/usr/lib/systemd⽬录。

⽬录下⼜分为system,和user之分,/usr/lib/systemd/system #系统服务,开机不需要登陆就能运⾏的程序(相当于开启⾃启)+/usr/lib/systemd/user #⽤户服务,需要登录后才能运⾏的程序⽬录下⼜存在两种类型的⽂件:*.service #服务unit⽂件*.target #开机级别unitcentos7 的每⼀个服务以。

service 结尾,⼀般分为3部分:【unit】、【service】、【install】[Unit] # 主要是服务说明Description=test # 简单描述服务After=network.target # 描述服务类别,表⽰本服务需要在network服务启动后在启动Before=xxx.service # 表⽰需要在某些服务启动之前启动,After和Before字段只涉及启动顺序,不涉及依赖关系。

[Service] # 核⼼区域Type=forking # 表⽰后台运⾏模式。

User=user # 设置服务运⾏的⽤户Group=user # 设置服务运⾏的⽤户组KillMode=control-group # 定义systemd如何停⽌服务PIDFile=/usr/local/test/test.pid # 存放PID的绝对路径Restart=no # 定义服务进程退出后,systemd的重启⽅式,默认是不重启ExecStart=/usr/local/test/bin/startup.sh # 服务启动命令,命令需要绝对路径PrivateTmp=true # 表⽰给服务分配独⽴的临时空间[Install]WantedBy=multi-user.target # 多⽤户字段说明Type类型有:simple(默认):#以Execstart字段启动的进程为主进程forking:#Execstart 字段以fox()⽅式启动,,此时⽗进程将退出,⼦进程将成为主进程(后台运⾏),⼀般都设置为forking oneshot : #类似于simple,但只执⾏⼀次,systemd会等他执⾏完,才执⾏其他服务dbus: #类似于simple,但会等待D—Bus信号后启动notify: #类似与simple ,但结束后会发出通知信号,然后systemd才启动其他服务idle: #类似与simple,但要等到其他任务都执⾏完,才启动该服务EnvironmentFile:指定配置⽂件,和连词号组合使⽤,可以避免配置⽂件不存在的异常。

Windows+Linux双系统修改启动顺序

Windows+Linux双系统修改启动顺序

Windows+Linux双系统修改启动顺序Windows+Linux双系统修改启动顺序分析启动顺序windows与linux双系统下,如果先安装的是windows再安装redhat,则开机默认启动redhat。

启动顺序修改⽅法⼀在BIOS内的boot启动选项中,修改默认启动顺序即可。

但此操作给linux系统启动带来不便。

启动顺序修改⽅法⼆此⽅法是默认开机启动Linux系统,但是在Linux的开机菜单中更改默认选择windows,步骤如下。

(1)找到Linux菜单开机启动选项名称(menuentry)[root@foundation~]#cat/boot/efi/EFI/redhat/grub.cfg###BEGIN/etc/grub.d/30_os-prober###menuentry''WindowsBootManager(on/dev/sda1)''##单引号内(2)修改默认开机选项为windows[root@foundation~]#vim/boot/grub2/grubenv#GRUBEnvironmentBlock#saved_entry=RedHatEnterpriseLinuxServer(3.10.0-327.el7.x86_64)7.2(Maipo)saved_entry=WindowsBootManager(on/dev/sda1)注意:名称要⼀致,menuentry后的单引号内容要复制全,否则可能出错。

(3)重启⽣效,亲测可⽤。

Linuxwindows双系统调整启动顺序1.打开终端,并⽤gedit或其他编辑器打开grub⽂件2.将GRUB_DEFAULT=0改为GRUB_DEFAULT=4(从零计数,Windows为第4个)3.⼀定记得更新grubsudoupdate-grub4.重启电脑。

修改win10和ubuntu17.10双系统启动顺序双系统安装好后,默认启动项是ubuntuKylin,很多⼈希望windows为默认启动项,只能⾃⼰⼿动修改了。

linux开机进入命令行模式

linux开机进入命令行模式

Linux默认启动后进入XWindow,但可以修改参数直接进入命令行界面。

到底是进入XWindow还是进入命令行界面,是在系统初始化进行的。

对于大部分linux系统,初始化使用init进程,/etc/inittab 为其配置文件。

例如# The default runlevelid:2:initdefault# Boot-time system configuration/initialization scriptsi::sysinit:/etc/init.d/rcS# Runlevelsl0:0:wait:/etc/init.d/rc 0l1:1:wait:/etc/init.d/rc 1l2:2:wait:/etc/init.d/rc 2l3:3:wait:/etc/init.d/rc 3l4:4:wait:/etc/init.d/rc 4l5:5:wait:/etc/init.d/rc 5l6:6:wait:/etc/init.d/rc 6z6:6:respawn:/sbin/sulogin# How to react to ctrl-alt-delca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now这些内容的通用格式为id:runlevels:action:process。

id 是惟一标识该项的字符序列。

runlevels 定义了操作所使用的运行级别。

action 指定了要执行的特定操作。

process 定义了要执行的进程。

# 对各个运行级的详细解释:0 为停机,机器关闭。

1 为单用户模式,就像Win9x下的安全模式类似。

2 为多用户模式,但是没有NFS支持。

3 为完整的多用户模式,是标准的运行级。

4 一般不用,在一些特殊情况下可以用它来做一些事情。

例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。

5 就是X11,进到X Window系统了。

Linux系统如何设置开机自动运行脚本

Linux系统如何设置开机自动运行脚本

在Windows 下,我们有很多方法可以设置开机启动,但在Linux 系统下我们需要如何操作呢?Linux 下同样可以设置开机启动,但可能需要我们敲一些命令(可能也有 UI 界面的设置方法,但我不熟,我更多是玩命令)。

下面我们就介绍三种简单但可行的开机启动设置方法。

方法一:修改/etc/rc.d/rc.local 文件/etc/rc.d/rc.local文件会在 Linux 系统各项服务都启动完毕之后再被运行。

所以你想要自己的脚本在开机后被运行的话,可以将自己脚本路径加到该文件里。

但是,首先需要确认你有运行这个文件的权限。

$ chmod +x /etc/rc.d/rc.local为了演示,我们创建了一个脚本,当它被执行之后,将在家目录下写入有特定信息的文件。

$ vim auto_run_script.sh#!/bin/bashdate >> /home/alvin/output.txthostname >> /home/alvin/output.txt保存退出后,再给它赋予可执行权限:$ chmod +x auto_run_script.sh然后,我们再将脚本添加到/etc/rc.d/rc.local文件最后一行:$ vim /etc/rc.d/rc.local/home/alvin/auto_run_script.sh接下来,我们就可以试试效果了。

直接重启系统就可以了:$ sudo reboot重启之后,就会在家目录下看到脚本执行的结果了。

方法二:使用crontab大家知道,crontab 是 Linux 下的计划任务,当时间达到我们设定的时间时,可以自动触发某些脚本的运行。

我们可以自己设置计划任务时间,然后编写对应的脚本。

但是,有个特殊的任务,叫作@reboot,我们其实也可以直接从它的字面意义看出来,这个任务就是在系统重启之后自动运行某个脚本。

那它将运行的是什么脚本呢?我们如何去设置这个脚本呢?我们可以通过crontab -e来设置。

Linux设置tomcat服务开机启动

Linux设置tomcat服务开机启动

Linux中设置tomcat服务开机启动1、添加用户执行命令:(顺序执行就可以)#添加用户useradd tomcat#添加组groupadd tomcat#把tomcat加入tomcat组usermod -G tomcat tomcat#设置用户tomcat对tomcat目录的权限:目录换成自己的tomcat目录chown -R tomcat /opt/apache-tomcat-5.5.332、建立tomcat启动文件进入目录 /etc/init.d在该目录下建立一个文件,直接使用vi命令就会建立,名字叫作“tomcatd”,名字可以随便命名。

vi tomcatd里面的内容如下,根据自己的情况修改下对应的tomcat目录和JDK的目录:内容开始:#chkconfig: 345 99 10#description: Auto-starts tomcat# /etc/init.d/tomcatd# Tomcat auto-start# Source function library.. /etc/init.d/functions# source networking configuration.. /etc/sysconfig/networkRETVAL=0# CATALINA_HOME="/opt/apache-tomcat-5.5.33"export JAVA_HOME=/opt/jdk1.6.0_22export CATALINA_HOME=/opt/apache-tomcat-5.5.33export CATALINA_BASE=/opt/apache-tomcat-5.5.33TOMCATUSER=tomcatstart(){if [ -f $CATALINA_HOME/bin/startup.sh ];thenecho $"Starting Tomcat"/bin/su $TOMCATUSER -c $CATALINA_HOME/bin/startup.shRETVAL=$?echo " OK"return $RETVALfi}stop(){if [ -f $CATALINA_HOME/bin/shutdown.sh ];thenecho $"Stopping Tomcat"/bin/su $TOMCATUSER -c $CATALINA_HOME/bin/shutdown.shRETVAL=$?sleep 1ps -fwwu tomcat | grep apache-tomcat|grep -v grep | grep -v PID | awk '{print $2}'|xargs kill -9echo " OK"# [ $RETVAL -eq 0 ] && rm -f /var/lock/...return $RETVALfi}case "$1" instart)start;;stop)stop;;restart)echo $"Restaring Tomcat"$0 stopsleep 1$0 start;;*)echo $"Usage: $0 {start|stop|restart}"exit 1;;esacexit $RETVAL内容结束注:tomcatd中的内容需要根据自己情况修改的是下面部分,其中“tomcat”是一个用户名# CATALINA_HOME="/opt/apache-tomcat-5.5.33"export JAVA_HOME=/opt/jdk1.6.0_22export CATALINA_HOME=/opt/apache-tomcat-5.5.33export CATALINA_BASE=/opt/apache-tomcat-5.5.33TOMCATUSER=tomcattomcatd文件保存完之后就可以测试下是否能够启动tomcat服务,能够启动说明tomcatd这个文件脚本是正确的。

Linux虚拟机用户操作

Linux虚拟机用户操作

IC 工艺及版图设计课程实验一一、Linux 虚拟机启动操作1.启动 Wndows 后在桌面上找到虚拟机的图标双击启动虚拟机。

2.找到 Linux 文件目录 找到 Linux 系统所在文件夹,File-Open… Linux 所在目录 C/Linux/CentOS/CentOS.vmx123.启动 Linux 在菜单上选择 VM-Power-Power on 或者直接在快捷栏上选择 Power on 图标34.启动过程 选择 Power On 后系统自动启动,不需要进行操作,系统启动时间和个人电脑配置有关。

45.启动完成二、用户登录 Username:stu1 或 Username:stu2 登录后界面: 回车 Password: 123456 回车 回车 Password: 123456 回车三、虚拟机常用操作51.全屏显示:Linux 占据整个屏幕2.浏览文件夹 选择 stu1’s Home,右键,选择 Browse Folder,就可以查看用户下面的文件夹。

直接双击 也可以,但是直接双击文件夹的话会在新的窗口打开。

3.打开终端命令窗口 Linux 的操作一般以命令的形式实现,具体操作命令请查阅相关文件。

在桌面上右键—Open Terminal,就可以打开一个终端窗口,输入命令6四、关机 实验操作完成后,要把虚拟机关机后 Windows 才能正常关机。

1.Linux 关机的话在 Actions 中选择 Log Out 选项2.选择注销(Log Out)/关机(Shut Down)/重启(Restart)78。

Linux系统服务启动脚本使用Shell脚本实现服务的自动启动和停止

Linux系统服务启动脚本使用Shell脚本实现服务的自动启动和停止

Linux系统服务启动脚本使用Shell脚本实现服务的自动启动和停止在Linux系统中,服务是非常重要的组成部分。

服务可以是Web服务器、数据库服务器或其他重要后台程序。

为了方便管理,我们经常需要将这些服务设置为开机自启动,并能够方便地手动启动和停止。

为了实现这一目标,我们可以使用Shell脚本来编写启动和停止服务的脚本。

Shell脚本是一种在Unix/Linux系统中非常常见的脚本编程语言,它可以用来自动化执行任务和管理系统。

下面,我将简要介绍如何使用Shell脚本来实现服务的自动启动和停止。

首先,我们需要创建一个Shell脚本文件,命名为“service.sh”。

在这个文件中,我们需要定义两个函数,分别用来启动和停止服务。

例如,我们以启动Nginx服务为例,可以按照以下方式编写脚本:```shell#!/bin/bash# 启动服务start_service() {echo "Starting Nginx service..."/usr/sbin/nginxecho "Nginx service started."}# 停止服务stop_service() {echo "Stopping Nginx service..."/usr/sbin/nginx -s stopecho "Nginx service stopped."}# 根据命令行参数选择启动或停止服务case "$1" instart)start_service;;stop)stop_service;;*)echo "Usage: $0 {start|stop}";;esac```在上面的脚本中,我们首先定义了两个函数,即“start_service”和“stop_service”。

这些函数分别用来启动和停止Nginx服务。

Linux服务器管理与网络配置教程

Linux服务器管理与网络配置教程

Linux服务器管理与网络配置教程第一章:Linux服务器管理基础Linux 服务器管理是使用 Linux 操作系统来管理和维护服务器的过程。

本章将介绍如何使用一些基础的 Linux 命令和工具来管理服务器,包括登录服务器、创建用户账户、修改文件权限等。

1.1 登录服务器要管理 Linux 服务器,首先需要登录服务器。

常用的远程登录工具有 SSH(Secure Shell)和 PuTTY。

本节将详细介绍如何使用SSH 和 PuTTY 远程登录服务器,并提供一些常用的登录命令示例。

1.2 创建用户账户为了管理服务器,需要创建一个具有管理员权限的用户账户。

本节将介绍如何使用命令行和图形界面工具来创建用户账户,并授予相应的权限。

1.3 修改文件权限为了保护服务器的安全性和文件的完整性,需要正确设置文件权限。

本节将介绍如何使用命令行和图形界面工具来修改文件和目录的权限,并阐述权限的含义和作用。

第二章:Linux 服务器网络配置本章将介绍如何配置 Linux 服务器的网络设置,包括 IP 地址、子网掩码、网关和 DNS 配置等。

还将介绍如何进行网络故障排除和常见网络问题的解决方法。

2.1 配置静态 IP 地址静态IP 地址是指服务器在启动过程中不会改变的固定IP 地址。

本节将介绍如何使用命令行和图形界面工具来配置静态 IP 地址。

2.2 配置子网掩码和网关子网掩码和网关是用于确定服务器与其他网络设备之间的连接的重要参数。

本节将介绍如何设置子网掩码和网关,并解释其原理。

2.3 配置 DNSDNS(Domain Name System)用于将域名转换为 IP 地址。

本节将介绍如何配置 DNS 服务器的设置,包括使用本地 DNS 服务器和公共 DNS 服务器。

2.4 网络故障排除网络故障是服务器管理中常见的问题。

本节将介绍一些常用的网络故障排除方法,例如检查网络连接、排查网络配置问题等。

第三章:Linux 服务器服务管理本章将介绍如何管理 Linux 服务器中的服务,包括启动和停止服务、设置开机自启动等。

linux启动顺序讲解

linux启动顺序讲解

linux启动顺序讲解⼀、简单介绍RHEL开机时的先后顺序BIOS —> MBR —> Kernel —> init1、当电脑⼀打开电源时电脑就会进⼊BIOS(BIOS的⼯作主要是检测⼀些硬件设备);2、检测完后会进⼊MBR也就是boot loader(MBR位于硬盘的第⼀个扇区总共512bytes,其中前446bytes⾥⾯的编码是在选择引导分区也就是决定要由哪个分区来引导);3、载⼊系统的Kernel(核⼼),在Kernel⾥主要是载⼊电脑设备的驱动程序,以便可以控制电脑上的设备,并且以只读⽅式来挂载根⽬录,也就是⼀开始只能读取到根⽬录所对应的那个分区,所以/etc、/bin、/sbin、/dev、/lib这五个⽬录必须同根⽬录在⼀个分区中;4、最后启动init这个程序,所以init这个程序的进程编号为1,是Linux中第⼀个执⾏的程序;init这个程序会根据Run level来执⾏以下这些程序:·/etc/rc.d/rc.sysinit;·/etc/rc.d/rc 和etc/rc.d/rc?.d/·/etc/rc.d/rc.local·如果有适当的图形界⾯管理程序⼆、BIOS初始化时主要的三个任务BIOS(B asic I nput/O utput S ystem)1、电脑周边设备的检测,加电⾃检POST (Power on self test);2、BIOS会选择要由哪⼀个设备来开机,例如:软盘启动、光盘启动、⽹络启动、最常见的从硬盘启动;3、选择好由哪个设备开机后,就开始读取这个设备的MBR 引导扇区;三、介绍Boot Loader中的主要⼯作1、Boot Loader可以安装在两个地⽅:·安装在硬盘的MBR中;·当有时候MBR中被其他开机管理程序占⽤就可以将Boot Loader 安装在硬盘中的其中⼀个分区的引导扇区上,;2、Boot Loader的程序码分为两个阶段:(1)Boot Loader第⼀阶段的程序码⾮常⼩,只有446bytes,可以存⼊在MBR或是某⼀个分区的引导扇区⾥,(2)Boot Loader第⼀阶段的程序码是从boot 分区来载⼊的,就是说Boot Loader 第⼆阶段程序码存放在/boot 这个分区中;3、下⾯来看三个Boot Loader 的开机流程范例,如在⼀块硬盘中安装了两个系统分别为:windows 2003 和Red hat linux当电脑开机后,会先载⼊MBR通过第⼀阶段程序码来载⼊第⼆阶段程序码,进⼊GRUB开机菜单这⾥选择哪个系统就会载⼊相应的核⼼;四、介绍GRUB和grub.conf 这个配置⽂件的内容其实从MBR载⼊Boot Loader开始,载⼊Kernel,载⼊init这些程序之间都是由GRUB这个多重开机管理程序所负责的。

计算机及Linux操作系统开机启动过程详解

计算机及Linux操作系统开机启动过程详解

计算机及Linux操作系统开机启动过程详解从按下开机键开始的计算机启动过程:(主要包括从主板加载BIOS并执⾏、从磁盘加载启动区并执⾏、从磁盘加载操作系统并执⾏三步,是依次递进的,详情参阅)加载BIOS:按下开机键,主板ROM的BIOS被(被谁?)加载到到内存0xffff0处,CPU 将 PC 寄存器的值强制初始化为 0xffff0(⼀跳)。

执⾏BIOS代码:阶段1(0xffff0 处的内容):该⼊⼝地址处存的是⼀个跳转指令,跳转的⽬的地是内存0xfe05b位置,该位置存了BIOS的真正内容。

执⾏该跳转(⼆跳)。

阶段2(0xfe05b 处的内容):执⾏硬件检测、硬件初始化、建⽴中断向量表等⼯作后,找到磁盘上的启动区(或称引导区)加载到内存0x7c00位置,并跳转到该位置(三跳)。

执⾏启动区代码(0x7c00 处的内容):从磁盘加载OS内核到内存,与上⾯不同这⾥内存位置不是固定的了,并跳转到OS内核代码处(四跳)。

执⾏OS内核代码:包括开启分段机制、进⼊保护模式、开启中断机制等,执⾏完后系统由OS接⼿管理。

具体过程见下⽂“操作系统启动过程”部分。

整体过程概要:补充:BIOS位于主板ROM,启动时被加载到内存;启动区、OS位于磁盘,被先后加载到内存。

BIOS、启动区在内存的位置是固定的(为啥是这三个值?早期定死的);⽽OS在内存位置不是固定的。

启动区:若⼀个磁盘上0盘0道1扇区的内容(512B)的末两个字节为0x55、0xaa,则这该扇区会被BIOS识别为启动区,该磁盘会被当做可启动盘。

往⼀个磁盘烧录OS后之所以可以当做启动盘就是因为往该位置写⼊了这些特殊数据。

若装了多系统,则启动时会列出并让⽤户选择要启动的系统,这些系统就是根据上述条件被识别得到。

可见,⼀个程序只要其虚拟内存以0x7c00作为段地址,且按上述条件烧录到磁盘,则就可以被BIOS识别为启动区加载到内存执⾏。

因此,如果该程序逻辑中不是去加载OS⽽是直接输出数据,则该程序⾃⾝就是⼀个简洁的"操作系统"。

简要分析linux系统的启动过程

简要分析linux系统的启动过程

简要分析linux系统的启动过程接触linux系统运维已经好⼏年了,常常被问到linux系统启动流程问题,刚好今天有空来梳理下这个过程:⼀般来说,所有的操作系统的启动流程基本就是:总的来说,linux系统启动流程可以简单总结为以下⼏步:1)开机BIOS⾃检,加载硬盘。

2)读取MBR,进⾏MBR引导。

3)grub引导菜单(Boot Loader)。

4)加载内核kernel。

5)启动init进程,依据inittab⽂件设定运⾏级别6)init进程,执⾏rc.sysinit⽂件。

7)启动内核模块,执⾏不同级别的脚本程序。

8)执⾏/etc/rc.d/rc.local9)启动mingetty,进⼊系统登陆界⾯。

linux系统安装时,如果要想设置开启启动项,可以:开机到BIOS提醒界⾯,按键F11(Dell服务器的做法)进⼊BIOS设置BOOT MENU,继⽽设置启动项:硬盘HD启动,光盘CD/DVD启动,还是U盘USB启动。

下⾯就linux操作系统的启动过程做⼀详细解析记录:加载内核操作系统接管硬件以后,⾸先读⼊ /boot ⽬录下的内核⽂件。

[root@bastion-IDC ~]# ll /boot/total 21668-rw-r--r--. 1 root root 105195 Nov 22 2013 config-2.6.32-431.el6.x86_64drwxr-xr-x. 3 root root 1024 Aug 22 16:31 efidrwxr-xr-x. 2 root root 1024 Aug 22 16:32 grub-rw-------. 1 root root 15217153 Aug 22 16:32 initramfs-2.6.32-431.el6.x86_64.imgdrwx------. 2 root root 12288 Aug 22 16:24 lost+found-rw-r--r--. 1 root root 193758 Nov 22 2013 symvers-2.6.32-431.el6.x86_64.gz-rw-r--r--. 1 root root 2518236 Nov 22 2013 System.map-2.6.32-431.el6.x86_64-rwxr-xr-x. 1 root root 4128368 Nov 22 2013 vmlinuz-2.6.32-431.el6.x86_64启动初始化进程内核⽂件加载以后,就开始运⾏第⼀个程序 /sbin/init,它的作⽤是初始化系统环境。

linux更改启动方式文件:etcinittab将启动方式改为文本(命令行)模式。

linux更改启动方式文件:etcinittab将启动方式改为文本(命令行)模式。

cd:改变当前目录LS:显示目录内容mkdir:创建目录cp:复制文件或目录rm:删除文件或目录mv:移动或改名现有的文件或目录更改启动方式文件:/etc/inittab 将启动方式改为文本(命令行)模式。

[root@localhost ~]# vi /etc/initt ab[root@localhost ~]# useradd cp1[root@localhost ~]# useradd cp2[root@localhost ~]# useradd cp3[root@localhost ~]# groupadd cp[root@localhost ~]# mkdir /tmp/info1[root@localhost ~]# mkdir /tmp/info2[root@localhost ~]# mkdir /tmp/info3[root@localhost ~]# mkdir /tmp/info[root@localhost ~]# cd /tmp[root@localhost tmp]# ls[root@localhost tmp]# setfacl -m u:cp1:6 /tmp/info1[root@localhost tmp]# setfacl -m u:cp2:7 /tmp/info2[root@localhost tmp]# usermod -g cp cp1[root@localhost tmp]# usermod -g cp cp2[root@localhost tmp]# usermod -g cp cp3[root@localhost tmp]# setfacl -m g:cp:7 /tmp/info[root@localhost tmp]# su - cp3[cp3@localhost ~]$ iduid=503(cp3) gid=504(cp) groups=504(cp) context=root:system_r:unconfined_t:SystemLow-SystemHigh [cp3@localhost ~]$ cd /tmp/info[cp3@localhost info]$ ll总计locaf[root@localhost ~]# passwd cp1Changing password for user cp1.New UNIX password:BAD PASSWORD: it is WAY too shortRetype new UNIX password:passwd: all authentication tokens updated successfully.。

Linux实现脚本开机自启动

Linux实现脚本开机自启动

Linux实现脚本开机⾃启动参考链接:Ubuntu系统实现脚本开机⾃启动0、序⾔ 很多时候,我们使⽤Linux时,为了⽅便操作,需要⽤到⼀些⾃启动的脚本,对于不同的Linux系统来说,⾃启动⽅式各有不同,我这⾥记录的是Ubuntu 20.0系统的;⽂章后⾯会补充参考链接的博客部分内容,仅供参考学习使⽤。

该⽅法也可以⽤在移植系统时,把开机启动服务移植进去。

在 Ubuntu 16以前,有个很简单的 rc.local ,在这个⽂件内写上你要执⾏的命令,在开机后,系统就会以管理员权限去执⾏这些命令。

但是,这个启动脚本的控制粒度并不是很精细。

所以,在Ubuntu18 版本开始,Ubuntu使⽤了 systemd 替代了 initd 管理系统。

并且默认已经取消了 /etc/rc.local ⽂件,如果要在 Ubuntu16 以后使⽤ rc.local 这个⽅法,可以参考我i另⼀篇博⽂:。

1、建⽴开机启动服务 跳转到/etc/systemd/system⽂件夹,移植系统时也是到你的⽂件系统的这个⽂件夹; 新建开机启动服务sudo vim my_start.service[Unit]#该⽂件是⾃⼰建⽴的启动服务⽂件,#/bin/my_start.sh 是你要启动的脚本所在的路径以及⽂件名,其他保持默认格式即可Description=/bin/my_start.sh CompatibilityConditionPathExists=/bin/my_start.s h[Service]Type=forkingExecStart=/bin/my_start.shTimeoutSec=0StandardOutput=ttyRemainAfterExit=yesSysVStartPriority=99[Install]WantedBy=multi-user.target 给启动服务添加权限sudo chmod 777 my_start.service2、创建要⾃启动的脚本 因为我在第⼀步的启动服务⾥声明的启动脚本路径以及名称,所以建⽴的启动脚本名称路径要跟启动服务⾥声明的⼀致;跳转到启动服务⾥声明的/bin⽬录,添加启动脚本vim my_start.sh#!/bin/sh#该⽂件为⾃定义开机启动脚本,可以⽤该脚本执⾏⼀些你需要开机启动的脚本PASSWORD="your_password"#你如果做系统移植时,可以把 roo t的密码参数设置为 export,然后这⾥设置为 PASSWORD=${ROOT_PASSWORD},就是直接提取你的 root 密码#具体你的系统保持密码的参数是什么要看你的移植的系统了,我的是 ROOT_PASSWORDecho ${PASSWORD} | sudo -S /bin/myStart/set_net_core.sh #echo ${PASSWORD} | sudo -S 是实现脚本⾃动把执⾏sudo命令时要输⼊的密码输⼊进去#我在这⾥的脚本实现的是:启动 /bin/myStart ⽂件夹⾥的 set_net_core.sh 脚本#这种⽅法的好处就是我只需要做⼀个启动服务专门⽤来执⾏⼀个脚本去执⾏其他脚本,这样后续还有新的需要开机⾃启动脚本就只需要把执⾏命令写⼊到这⾥即可 给启动脚本添加权限 sudo chmod 777 my_start.sh3、启动脚本⾃启动服务 跳转到/etc/systemd/system⽂件夹,其实不进⼊也⾏,我这⾥为了加深记忆才重新进⼊⼀次;执⾏指令sudo systemctl enable my_start.service启动脚本⾃启动服务,然后使⽤指令reboot重启你的系统; 如果你是做系统移植需要⽤到的,你需要移植完系统,烧录后执⾏⼀次该指令,只需要执⾏⼀次即可,后续你断电关机重启都不⽤执⾏了。

linux设置服务开机自启动的三种方式

linux设置服务开机自启动的三种方式

linux设置服务开机⾃启动的三种⽅式这⾥介绍⼀下linux开机⾃动启动的⼏种⽅法,共计3种,⼤家可以借鉴⼀下!经验⾥⾯以centos 5.3系统为例!⽅法1:.利⽤ntsysv命令进⾏设置,利⽤root登陆终端命令下输⼊ntsysv 回车;如下图在这个界⾯上进⾏操作即可,简要的操作说明:括号中(*)代表默认开机启动,否则不会在开机的时候启动;按钮功能:上下键:可以在各个服务之间移动空格键:设置启动还是不启动,*进⾏设置即可Tab键:在⽅框、ok、cancle之间进⾏切换F1键:进⾏帮助⽂档,如下图:⽅法2:利⽤命令⾏chkconfig命令进⾏设置简要说明⼀下chkconfig命令的使⽤⽅法--list:将⽬前的各项服务状态栏显⽰出来--level:设置某个服务在该LEVEL下启动或者关闭单独查看某⼀服务是否开机启动的命令:chkconfig--list服务名单独开启某⼀服务的命令:chkconfig服务名on单独关闭某⼀服务的命令:chkconfig服务名off查看某⼀服务的状态:/etc/intd.d/服务名status设置完成之后,重启⼀下即可⽅法3:⽤户⾃定义开机程序(/etc/rc.d/rc.local)⽤户可以将⾃⼰书写的shellscript⽂件放⼊其中,或者数据库的⾃动,was等等⽐如让数据库开机⾃启:vi/etc/rc.local添加以下内容:su-oracle-c'lsnrctlstart'//让监听启动起来su-oracle-c'dbstart'//让数据库启动起来以上就是为⼤家分享的linux设置服务开机⾃启动的三种⽅式,希望对⼤家的学习有所帮助,⼤家也可以结合之前的⼀篇⽂章⼀起学习,会有意想不到的收获。

Linux系统服务启动自动重启Shell脚本

Linux系统服务启动自动重启Shell脚本

Linux系统服务启动自动重启Shell脚本在Linux操作系统中,服务的启动和自动重启是非常重要的任务。

为了保证系统稳定性和可靠性,我们可以编写一个Shell脚本来实现服务的自动启动和重启。

本文将介绍如何编写一个Shell脚本来实现这一功能。

一、确定需要自动重启的服务在开始编写Shell脚本之前,我们首先需要确定需要自动重启的服务。

可以通过以下命令查看当前系统运行的服务:```systemctl list-units --type=service --state=running```根据实际需求选择需要自动重启的服务,例如我们选择自动重启Apache服务。

二、编写自动重启Shell脚本打开终端,创建一个新的Shell脚本文件,例如auto_restart.sh,使用任意文本编辑器进行编辑,并添加以下内容:```#!/bin/bashservice_name="apache2" # 需要自动重启的服务名while true; dois_running=$(systemctl is-active $service_name) # 检查服务是否运行if [ "$is_running" != "active" ]; thensystemctl start $service_name # 如果服务未运行,则启动服务echo "$(date): Service $service_name restarted." >>/var/log/auto_restart.log # 记录重启日志fisleep 60 # 等待60秒后再次检查服务运行状态done```在上述脚本中,我们首先定义了需要自动重启的服务名,并使用一个无限循环来持续检查服务是否运行。

如果服务未运行,则使用systemctl命令启动服务,并将重启信息记录到/var/log/auto_restart.log文件中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何让Linux系统的程序在开机时自动运行
来源:赛迪网
Linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。

阅读之前建议先看一下附图。

本文中假设inittab中设置的init tree为:
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
/etc/rc.d/rc6.d
/etc/rc.d/init.d
1. 关于linux的启动
init是所有进程之父
init读取/etc/inittab,执行rc.sysinit脚本
(注意文件名是不一定的,有些unix甚至会将语句直接写在inittab中)
rc.sysinit脚本作了很多工作:
init $PATH
config network
start swap function
set hostname
check root file system, repair if needed
check root space
....
rc.sysinit根据inittab执行rc?.d脚本
linux是多用户系统,getty是多用户与单用户的分水岭
在getty之前运行的是系统脚本
2. 关于rc.d
所有启动脚本放置在/etc/rc.d/init.d下
rc?.d中放置的是init.d中脚本的链接,命名格式是:
S{number}{name}
K{number}{name}
S开始的文件向脚本传递start参数
K开始的文件向脚本传递stop参数
number决定执行的顺序
3. 启动脚本示例
这是一个用来启动httpd的/etc/rc.d/init.d/apache 脚本:
CODE:
#!/bin/bash
source /etc/sysconfig/rc
source $rc_functions
case "$1" in
start)
echo "Starting Apache daemon..."
/usr/local/apache2/bin/apachectl -k
start
evaluate_retval
;;
stop)
echo "Stopping Apache daemon..."
/usr/local/apache2/bin/apachectl -k stop
evaluate_retval
;;
restart)
ln -sf /etc/rc.d/rc.local
/etc/rc.d/rc3.d/S999rc.local &&
ln -sf /etc/rc.d/rc.local
/etc/rc.d/rc4.d/S999rc.local &&
ln -sf /etc/rc.d/rc.local
/etc/rc.d/rc5.d/S999rc.local &&
ln -sf /etc/rc.d/rc.local
/etc/rc.d/rc6.d/S999rc.local
[Copy to clipboard]
5. 关于bash启动脚本
/etc/profile
/etc/bashrc
~/.bash_profile
~/.bashrc
是bash的启动脚本
一般用来设置单用户的启动环境,也可以实现开机单用户的程序,但要明确他们都是属于bash范畴而不是系统范畴。

他们的具体作用介绍如下:
/bin/bash这个命令解释程序(后面简称shell)使用了一系列启动文件来建立一个运行环境:
/etc/profile
/etc/bashrc
~/.bash_profile
~/.bashrc
~/.bash_logout
每一个文件都有特殊的功用并对登陆和交互环境有不同的影响。

/etc/profile 和~/.bash_profile 是在启动一个交互登陆shell的时候被调用。

/etc/bashrc 和~/.bashrc 是在一个交互的非登陆shell启动的时候被调用。

~/.bash_logout 在用户注销登陆的时候被读取
一个交互的登陆shell会在/bin/login 成功登陆之后运行。

一个交互的非登陆shell是通过命令行来运行的,如[prompt]$/bin/bash。

一般一个非交互的shell出现在运行shell脚本的时候。

之所以叫非交互的shell,是因为它不在命令行上等待输入而只是执行脚本程序。

6. 关于开机程序的自动启动
系统脚本可以放置在/etc/rc.d/init.d中并建立/etc/rc.d/rc?.d链接,也可以直接放置在
/etc/rc.d/rc.local中。

init.d脚本包含完整的start,stop,status,reload等参数,是标准做法,推荐使用。

为特定用户使用的程序(如有的用户需要使用中文输入法而有的不需要)放置在~/中的bash启动脚本中。

相关文档
最新文档