systemd服务控制

        服务控制是指在操作系统中管理服务(system services)的过程,这些服务是执行指定系统功能的程序、例程或进程,以便支持其他程序,尤其是底层(接近硬件)程序。以下通过Linux系统中的systemd和sshd服务来详细举例解释服务控制:

一、systemd系统初始化程序

        systemd是Linux系统(如RadHat、CentOS等)的系统初始化程序,它是系统开始的第一个进程,PID为1。systemd负责启动系统时初始化系统环境,管理服务(启动、停止、重启等),以及处理系统运行级别等。

常用命令

  1. systemctl: 现代Linux系统中用来管理系统服务的命令。
  2. service: 在较老的Linux发行版中用来管理系统服务的命令。

注意:service指令管理的服务在/etc/init.d查看

service常用操作

(1)使用service启动服务:

service [服务名称] start

例如,启动Apache服务:

service apache2 start

 (2)使用service停止服务:

service [服务名称] stop

例如,停止Apache服务:

service apache2 stop

(3)使用service重启服务:

service [服务名称] restart

例如,重启Apache服务:

service apache2 restart

(4)使用service查看服务状态:

service [服务名称] status

例如,查看Apache服务状态:

service apache2 status

二、使用systemctl命令控制服务

systemctl是systemd的命令行工具,用于控制和管理系统服务。以下是一些常用的systemctl命令及其解释:

1.查看服务状态

systemctl status 服务名称

例如,查看sshd服务的状态:

systemctl status sshd

2.启动服务

systemctl start 服务名称

例如,启动sshd服务: 

systemctl start sshd

3.停止服务: 

systemctl stop 服务名称

例如,停止sshd服务: 

systemctl stop sshd

4.重启服务: 

systemctl restart 服务名称

例如,重启sshd服务: 

systemctl restart sshd

5.重新加载服务配置

当服务配置文件发生更改时,可以使用此命令重新加载配置,而无需停止和重新启动服务。

systemctl reload 服务名称

例如,重新加载sshd服务配置:

systemctl reload sshd

6.启用或禁用服务开机自启

systemctl enable 服务名称  # 启用开机自启  
systemctl disable 服务名称 # 禁用开机自启

例如,启用sshd服务开机自启:

systemctl enable sshd

7.查看所有服务的状态

systemctl list-units

8.查看所有服务的开机状态

systemctl list-unit-files

9.查看服务是否开机时自启

systemctl is-enabled 服务名

三、Linux操作系统运行级别

        Linux操作系统具有7个运行级别,每个级别代表系统不同的运行状态和功能。以下是这些运行级别的详细解释和举例:

1. 运行级别0:系统停机状态

  • 描述:这是一个关机状态,系统不会启动。默认情况下,系统不会设置为这个运行级别,否则它将无法正常启动。
  • 举例:如果尝试将系统的运行级别设置为0,系统将立即关机。

2. 运行级别1:单用户工作状态

  • 描述:系统以单用户模式运行,只有root用户有权访问系统,用于系统维护。远程登录是被禁止的。
  • 举例:当系统出现问题需要维护时,管理员可以切换到此级别进行修复,因为只有root用户有权限访问,所以可以保证系统的安全性。

3. 运行级别2:多用户状态(没有NFS)

  • 描述:系统处于多用户模式,但没有网络文件系统(NFS)支持。
  • 举例:在一些不需要网络支持的场景下,系统可以运行在此级别。

4. 运行级别3:完整的多用户文本模式(有NFS)

  • 描述:系统处于完全的多用户模式,有网络支持,并且登录后用户会进入控制台命令行模式。
  • 举例:这是大多数Linux服务器和桌面系统的默认运行级别,用户可以通过命令行界面进行各种操作。

5. 运行级别4:系统未使用,保留

  • 描述:这个运行级别通常不被使用,但在某些特殊情况下可能会用到。
  • 举例:在笔记本电脑电池耗尽时,可能会切换到这个级别来做一些设置。

6. 运行级别5:图形GUI模式

  • 描述:系统使用X11控制台,登录后用户会进入图形用户界面(GUI)模式,如X Window系统。
  • 举例:在大多数Linux桌面系统中,当用户登录时,会看到一个图形化的桌面环境,这就是运行级别5。

7. 运行级别6:系统正常关闭并重启

  • 描述:这是系统的重启状态。默认情况下,系统不会设置为这个运行级别,否则它将无法正常启动,而是一直重启。
  • 举例:如果尝试将系统的运行级别设置为6,系统将立即重启。

运行级别的原理和配置

  • 原理:Linux系统的运行级别是通过/etc/rc.d/init.d/目录下的服务脚本和/etc/rc.d/下的rcN.d目录来实现的。每个rcN.d目录对应一个运行级别,并包含指向/etc/rc.d/init.d/中服务脚本的符号链接。系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序启动或停止服务。
  • 配置:系统管理员可以使用init命令来切换运行级别,例如“init 3”将系统切换到运行级别3。同时,也可以使用runlevel命令来查看当前系统的运行级别。

四、切换运行级别

一、使用init命令

        init命令是Linux标准初始化系统的命令,可以用来切换运行级别。使用init命令时,需要指定目标运行级别的数字。例如:

  • 切换到运行级别0(关机):sudo init 0
  • 切换到运行级别1(单用户模式):sudo init 1
  • 切换到运行级别2(文本模式,无网络):sudo init 2
  • 切换到运行级别3(文本模式,有网络):sudo init 3
  • 切换到运行级别5(图形模式):sudo init 5
  • 切换到运行级别6(重启):sudo init 6

二、使用systemctl命令

        systemctl命令是systemd初始化系统的命令,在最新版本的Linux发行版中被广泛使用。使用systemctl命令时,需要指定目标运行级别的名称。例如:

  • 切换到运行级别0(关机):sudo systemctl poweroff
  • 切换到运行级别1(单用户模式):sudo systemctl rescue
  • 切换到运行级别3(文本模式,有网络):sudo systemctl isolate multi-user.target(注意,虽然这里写的是multi-user.target,但它通常对应运行级别3,而不是运行级别2,因为运行级别2在现代Linux系统中已经不太常用了)
  • 切换到运行级别5(图形模式):sudo systemctl isolate graphical.target
  • 切换到运行级别6(重启):sudo systemctl reboot

        需要注意的是,systemctl命令中的isolate选项用于将系统切换到指定的运行级别,并保持在该级别,直到系统被明确指示切换到另一个级别。

三、使用telinit命令

        telinit命令与init命令类似,也可以用来改变运行级别,但更加灵活。telinit命令可以接受单数参数,表示直接切换到指定的运行级别。例如:

  • 切换到运行级别3:telinit 3
  • 切换到运行级别6(重启):telinit 6

四、查看当前运行级别

        要查看当前系统的运行级别,可以使用runlevel命令或who -r命令。例如:

  • 使用runlevel命令:runlevel,该命令会显示当前运行级别和上一个运行级别的信息。
  • 使用who -r命令:who -r,该命令也会显示当前系统的运行级别信息。

五、修改默认运行级别

        要修改系统的默认运行级别,即系统启动时自动进入的运行级别,可以通过以下方法实现:

  • 使用systemctl set-default命令:例如,要将默认运行级别设置为多用户模式(运行级别3),可以使用sudo systemctl set-default multi-user.target命令。然后重新启动系统,系统将启动到新设置的运行级别。
  • 修改/etc/inittab文件(适用于某些Linux发行版):打开/etc/inittab文件,找到类似于id:3:initdefault:的行,将其中的数字3修改为你想要的运行级别,然后保存文件并退出编辑器。重新启动系统后,系统将启动到新设置的运行级别。但需要注意的是,不是所有的Linux发行版都使用/etc/inittab文件来配置默认运行级别。

        综上所述,切换Linux系统的运行级别可以通过多种命令来实现,具体选择哪种方法取决于你的Linux发行版和具体需求。在切换运行级别之前,请确保你了解每个运行级别的含义和可能的影响,以避免对系统造成不必要的损害。

### 关于ArcGIS License Server无法启动的解决方案 当遇到ArcGIS License Server无法启动的情况,可以从以下几个方面排查并解决问题: #### 1. **检查网络配置** 确保License Server所在的计算机能够被其他客户端正常访问。如果是在局域网环境中部署了ArcGIS Server Local,则需要确认该环境下的网络设置是否允许远程连接AO组件[^1]。 #### 2. **验证服务状态** 检查ArcGIS Server Object Manager (SOM) 的运行情况。通常情况下,在Host SOM机器上需将此服务更改为由本地系统账户登录,并重启相关服务来恢复其正常工作流程[^2]。 #### 3. **审查日志文件** 查看ArcGIS License Manager的日志记录,寻找任何可能指示错误原因的信息。这些日志可以帮助识别具体是什么阻止了许可服务器的成功初始化。 #### 4. **权限问题** 确认用于启动ArcGIS License Server的服务账号具有足够的权限执行所需操作。这包括但不限于读取/写入特定目录的权利以及与其他必要进程通信的能力。 #### 5. **软件版本兼容性** 保证所使用的ArcGIS产品及其依赖项之间存在良好的版本匹配度。不一致可能会导致意外行为完全失败激活license server的功能。 #### 示例代码片段:修改服务登录身份 以下是更改Windows服务登录凭据的一个简单PowerShell脚本例子: ```powershell $serviceName = "ArcGISServerObjectManager" $newUsername = ".\LocalSystemUser" # 替换为实际用户名 $newPassword = ConvertTo-SecureString "" -AsPlainText -Force Set-Service -Name $serviceName -StartupType Automatic New-ServiceCredential -ServiceName $serviceName -Account $newUsername -Password $newPassword Restart-Service -Name $serviceName ``` 上述脚本仅作为示范用途,请依据实际情况调整参数值后再实施。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值