资源隔离-systemd

本文介绍了Systemd的基础单元及其类型,包括ServiceUnit、TargetUnit等,并提供了常用的Systemd命令示例,如启动、停止服务等。此外,还展示了如何通过Service文件设置CPU亲和力以及如何限制服务的内存和磁盘读取速度。

介绍

systemd系统和用户

位置

/usr/lib/systemd/system
/usr/lib/systemd/user

unit

systemd管理的基础单元叫unit,分为如下几种类型

Service unit:系统服务
Target unit:多个 Unit 构成的一个组
Device Unit:硬件设备
Mount Unit:文件系统的挂载点
Automount Unit:自动挂载点
Path Unit:文件或路径
Scope Unit:不是由 Systemd 启动的外部进程
Slice Unit:进程组
Snapshot Unit:Systemd 快照,可以切回某个快照
Socket Unit:进程间通信的 socket
Swap Unit:swap 文件
Timer Unit:定时器

常用命令

# 列出正在运行的 Unit
$ systemctl list-units

# 列出所有Unit,包括没有找到配置文件的或者启动失败的
$ systemctl list-units --all

# 列出所有没有运行的 Unit
$ systemctl list-units --all --state=inactive

# 列出所有加载失败的 Unit
$ systemctl list-units --failed

# 列出所有正在运行的、类型为 service 的 Unit
$ systemctl list-units --type=service

# 显示系统状态
$ systemctl status

# 显示单个 Unit 的状态
$ sysystemctl status bluetooth.service

# 显示某个 Unit 是否正在运行
$ systemctl is-active application.service

# 显示某个 Unit 是否处于启动失败状态
$ systemctl is-failed application.service

# 显示某个 Unit 服务是否建立了启动链接
$ systemctl is-enabled application.service

# 立即启动一个服务
$ sudo systemctl start apache.service

# 立即停止一个服务
$ sudo systemctl stop apache.service

# 重启一个服务
$ sudo systemctl restart apache.service

# 杀死一个服务的所有子进程
$ sudo systemctl kill apache.service

# 重新加载一个服务的配置文件
$ sudo systemctl reload apache.service

# 重载所有修改过的配置文件
$ sudo systemctl daemon-reload

# 显示某个 Unit 的所有底层参数
$ systemctl show httpd.service

# 显示某个 Unit 的指定属性的值
$ systemctl show -p CPUShares httpd.service

# 设置某个 Unit 的指定属性
$ sudo systemctl set-property httpd.service CPUShares=500

测试

启动

在slice:test2.slice下,启动一个service:toptest2.service
可以看到,启动后的进程pid是8929

[root@rac2 ~]# systemd-run --unit=toptest2 --slice=test2 top -b
Running as unit toptest2.service.
[root@rac2 ~]# systemctl status toptest2.service
● toptest2.service - /usr/bin/top -b
   Loaded: loaded (/run/systemd/system/toptest2.service; static; vendor preset: disabled)
  Drop-In: /run/systemd/system/toptest2.service.d
           └─50-Description.conf, 50-ExecStart.conf, 50-Slice.conf
   Active: active (running) since Fri 2017-03-10 14:46:18 CST; 6s ago
 Main PID: 8928 (top)
   CGroup: /test2.slice/toptest2.service
           └─8928 /usr/bin/top -b

Mar 10 14:46:24 rac2 top[8928]: 25230 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kworker/6:0
Mar 10 14:46:24 rac2 top[8928]: 26164 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kworker/3:2
Mar 10 14:46:24 rac2 top[8928]: 27118 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kworker/8:2
Mar 10 14:46:24 rac2 top[8928]: 29597 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kworker/9:2
Mar 10 14:46:24 rac2 top[8928]: 30021 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kworker/2:0
Mar 10 14:46:24 rac2 top[8928]: 31018 root      20   0  116276   3076   1800 S   0.0  0.0   0:00.75 bash
Mar 10 14:46:24 rac2 top[8928]: 31112 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/19+
Mar 10 14:46:24 rac2 top[8928]: 31827 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kworker/1:2
Mar 10 14:46:24 rac2 top[8928]: 32082 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/7:+
Mar 10 14:46:24 rac2 top[8928]: 32136 polkitd   20   0  524900  11184   4640 S   0.0  0.0   0:02.24 polkitd
[root@rac2 ~]# ps -ef | grep top
root      8928     1  0 14:46 ?        00:00:00 /usr/bin/top -b

CPU亲和力

CPUAffinity
CPU亲合力就是指在Linux系统中能够将一个或多个进程绑定到一个或多个处理器上运行.
一个进程的CPU亲合力掩码决定了该进程将在哪个或哪几个CPU上运行.在一个多处理器系统中,设置CPU亲合力的掩码可能会获得更好的性能.

[root@rac2 ~]# ps -ef | grep top
root      8928     1  0 14:46 ?        00:00:00 /usr/bin/top -b

先查看pid是8928的进程当前的cpu亲和力

[root@rac2 ~]# taskset -c -p 8928
pid 8928's current affinity list: 0-31

设定仅在cpu2上运行

[root@rac2 ~]# taskset -p -c 2 8928
pid 8928's current affinity list: 0-31
pid 8928's new affinity list: 2
[root@rac2 ~]# taskset -c -p 8928
pid 8928's current affinity list: 2

设定仅在cpu3,5,7-10上运行

[root@rac2 ~]#  taskset -p -c 3,5,7-10 8928
pid 8928's current affinity list: 2
pid 8928's new affinity list: 3,5,7-10
[root@rac2 ~]# taskset -c -p 8928
pid 8928's current affinity list: 3,5,7-10
service文件方式

下面service写的不太标准,主要是展示参数CPUAffinity

[Unit]
Description=t1

[Service]
Type=simple
ExecStart=/usr/bin/top -b
ExecStop=/bin/kill -WINCH ${MAINPID}
KillSignal=SIGCONT
PrivateTmp=true
CPUAffinity=3

[Install]
WantedBy=multi-user.target

限制内存

systemd-run --unit=memorytest1 --slice=test2  /usr/bin/bash /tmp/highmem.sh
systemctl set-property memorytest1.service MemoryLimit=2G

通过下面命令可以看进程是否在运行

systemctl status memorytest1.service

通过top可以观察进程消耗内存不会超过限制
譬如128G的服务器,设定为2G,则内存消耗在1.5%上下浮动

限制磁盘读取速度

systemd-run --unit=ioread --slice=test2 dd if=/dev/sdk of=/dev/null
iotop可以看到读取速度是:180M/s
systemctl set-property ioread BlockIOReadBandwidth='/dev/sdk 50M'
iotop可以看到读取速度是:50M/s
[root@VM-24-11-opencloudos application]# sudo journalctl -u original-ruoyi-admin -f -n 100 May 13 16:33:49 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212692. May 13 16:33:49 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - Your Spring Boot Application. May 13 16:33:49 VM-24-11-opencloudos (java)[986050]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:33:49 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:33:49 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:33:55 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212693. May 13 16:33:55 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - Your Spring Boot Application. May 13 16:33:55 VM-24-11-opencloudos (java)[986070]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:33:55 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:33:55 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:34:00 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212694. May 13 16:34:00 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - Your Spring Boot Application. May 13 16:34:00 VM-24-11-opencloudos (java)[986084]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:34:00 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:34:00 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:34:05 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212695. May 13 16:34:05 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - Your Spring Boot Application. May 13 16:34:05 VM-24-11-opencloudos (java)[986121]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:34:05 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:34:05 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:34:07 VM-24-11-opencloudos systemd[1]: /etc/systemd/system/original-ruoyi-admin.service:10: Ignoring unknown escape sequences: "\ " May 13 16:34:07 VM-24-11-opencloudos systemd[1]: /etc/systemd/system/original-ruoyi-admin.service:11: Unknown key name '--logging.level.root' in section 'Service', ignoring. May 13 16:34:07 VM-24-11-opencloudos systemd[1]: /etc/systemd/system/original-ruoyi-admin.service:12: Unknown key name '--server.port' in section 'Service', ignoring. May 13 16:34:07 VM-24-11-opencloudos systemd[1]: /etc/systemd/system/original-ruoyi-admin.service:15: Invalid environment assignment, ignoring: # May 13 16:34:07 VM-24-11-opencloudos systemd[1]: /etc/systemd/system/original-ruoyi-admin.service:15: Invalid environment assignment, ignoring: 兼容logback.xml配置[^1] May 13 16:34:10 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212696. May 13 16:34:10 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:34:10 VM-24-11-opencloudos (java)[986176]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:34:10 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:34:10 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:34:16 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212697. May 13 16:34:16 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:34:16 VM-24-11-opencloudos (java)[986200]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:34:16 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:34:16 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:34:21 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212698. May 13 16:34:21 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:34:21 VM-24-11-opencloudos (java)[986212]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:34:21 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:34:21 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:34:26 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212699. May 13 16:34:26 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:34:26 VM-24-11-opencloudos (java)[986237]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:34:26 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:34:26 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:34:31 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212700. May 13 16:34:31 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:34:31 VM-24-11-opencloudos (java)[986247]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:34:31 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:34:31 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:34:37 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212701. May 13 16:34:37 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:34:37 VM-24-11-opencloudos (java)[986269]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:34:37 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:34:37 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:34:42 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212702. May 13 16:34:42 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:34:42 VM-24-11-opencloudos (java)[986291]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:34:42 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:34:42 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:34:47 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212703. May 13 16:34:47 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:34:47 VM-24-11-opencloudos (java)[986314]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:34:47 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:34:47 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:34:52 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212704. May 13 16:34:52 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:34:52 VM-24-11-opencloudos (java)[986327]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:34:52 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:34:52 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:34:54 VM-24-11-opencloudos systemd[1]: Stopped original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:34:54 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:34:54 VM-24-11-opencloudos (java)[986337]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:34:54 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:34:54 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:34:59 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212705. May 13 16:34:59 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:34:59 VM-24-11-opencloudos (java)[986349]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:34:59 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:34:59 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:35:05 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212706. May 13 16:35:05 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:35:05 VM-24-11-opencloudos (java)[986381]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:35:05 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:35:05 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:35:10 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212707. May 13 16:35:10 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:35:10 VM-24-11-opencloudos (java)[986396]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:35:10 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:35:10 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:35:15 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212708. May 13 16:35:15 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:35:15 VM-24-11-opencloudos (java)[986424]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:35:15 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:35:15 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:35:20 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212709. May 13 16:35:20 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:35:20 VM-24-11-opencloudos (java)[986434]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:35:20 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:35:20 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:35:26 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212710. May 13 16:35:26 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:35:26 VM-24-11-opencloudos (java)[986456]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:35:26 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:35:26 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:35:31 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212711. May 13 16:35:31 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:35:31 VM-24-11-opencloudos (java)[986466]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:35:31 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:35:31 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:35:36 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212712. May 13 16:35:36 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:35:36 VM-24-11-opencloudos (java)[986494]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:35:36 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:35:36 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:35:41 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212713. May 13 16:35:41 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:35:41 VM-24-11-opencloudos (java)[986516]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:35:41 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:35:41 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'. May 13 16:35:47 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Scheduled restart job, restart counter is at 212714. May 13 16:35:47 VM-24-11-opencloudos systemd[1]: Started original-ruoyi-admin.service - original-ruoyi-admin. May 13 16:35:47 VM-24-11-opencloudos (java)[986538]: original-ruoyi-admin.service: Failed to determine group credentials: No such process May 13 16:35:47 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Main process exited, code=exited, status=216/GROUP May 13 16:35:47 VM-24-11-opencloudos systemd[1]: original-ruoyi-admin.service: Failed with result 'exit-code'.
05-15
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值