第 14 章 通过禁用 PC 卡守护进程降低 CPU 使用率

pcscd 守护进程管理与并行通信(PC 或 PCMCIA)和智能卡(SC)读取的连接。虽然 pcscd 通常是一个低优先级任务,但它通常可以使用比任何其他守护进程更多的 CPU。这种额外的背景措施可带来更高的抢占成本,导致实时任务和其他对确定性影响的其他不可影响。

先决条件

  • 系统上的 root 权限。

流程

  1. 检查 pcscd 守护进程的状态。

    # systemctl status pcscd
    ● pcscd.service - PC/SC Smart Card Daemon
         Loaded: loaded (/usr/lib/systemd/system/pcscd.service; indirect; vendor preset: disabled)
         Active: active (running) since Mon 2021-03-01 17:15:06 IST; 4s ago
    TriggeredBy: ● pcscd.socket
           Docs: man:pcscd(8)
       Main PID: 2504609 (pcscd)
          Tasks: 3 (limit: 18732)
         Memory: 1.1M
            CPU: 24ms
         CGroup: /system.slice/pcscd.service
                 └─2504609 /usr/sbin/pcscd --foreground --auto-exit

    Active 参数显示 pcsd 守护进程的状态。

  2. 如果 pcsd 守护进程正在运行,请将其停止。

    # systemctl stop pcscd
    Warning: Stopping pcscd.service, but it can still be activated by:
      pcscd.socket
  3. 将系统配置为确保 pcsd 守护进程在系统引导时不会重启。

    # systemctl disable pcscd
    Removed /etc/systemd/system/sockets.target.wants/pcscd.socket.

验证步骤

  1. 检查 pcscd 守护进程的状态。

    # systemctl status pcscd
    ● pcscd.service - PC/SC Smart Card Daemon
         Loaded: loaded (/usr/lib/systemd/system/pcscd.service; indirect; vendor preset: disabled)
         Active: inactive (dead) since Mon 2021-03-01 17:10:56 IST; 1min 22s ago
    TriggeredBy: ● pcscd.socket
           Docs: man:pcscd(8)
       Main PID: 4494 (code=exited, status=0/SUCCESS)
            CPU: 37ms
  2. 确保 Active 参数的值是 inactive(dead) 的。