systemd 느린 시작 - systemd-tmpfiles-setup

systemd 느린 시작 - systemd-tmpfiles-setup

최근에 데비안 jessie로 업그레이드했는데(현재 테스트 중) 그 이후로 평균 부팅 시간이 3~4분으로 늘어났습니다.

시작하기 2~3분 이내에 이 메시지가 나타납니다 grub.gdm

A job is running for creating volatile and temporary files and directories

이것이 출력이다systemd-analyze blame

[smit: ~] $ systemd-analyze blame 
    3min 14.096s systemd-tmpfiles-setup.service
          8.657s NetworkManager.service
          8.244s apache2.service
          7.048s ModemManager.service
          6.328s networking.service
          6.004s accounts-daemon.service
          5.288s binfmt-support.service
          4.557s systemd-logind.service
          4.541s alsa-restore.service
          4.541s console-kit-log-system-start.service
          4.530s lm-sensors.service
          4.521s pppd-dns.service
          4.520s redis-server.service
          4.519s hostapd.service
          4.519s minissdpd.service
          4.519s timidity.service
          4.519s nvidia-kernel.service
          4.518s rc-local.service
          4.437s bluetooth.service
          4.408s avahi-daemon.service
          2.243s systemd-fsck-root.service
          1.437s exim4.service
          1.415s keyboard-setup.service

시스템이 시작된 후에는 systemctl오류가 보고되지 않습니다.

[smit: ~] $ sudo systemctl status systemd-tmpfiles-setup
● systemd-tmpfiles-setup.service - Create Volatile Files and Directories
   Loaded: loaded (/lib/systemd/system/systemd-tmpfiles-setup.service; static)
   Active: active (exited) since Fri 2014-10-17 01:19:09 IST; 1h 41min ago
     Docs: man:tmpfiles.d(5)
           man:systemd-tmpfiles(8)
  Process: 230 ExecStart=/bin/systemd-tmpfiles --create --remove --boot --exclude-prefix=/dev (code=exited, status=0/SUCCESS)
 Main PID: 230 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/systemd-tmpfiles-setup.service

systemd-tmpfiles-setup.service시작이 느린가요? 자세한 로그는 어디서 얻을 수 있나요 systemd-tmpfiles-setup.service?

답변1

systemd가 시스템을 시작할 때 시작되는 첫 번째 서비스 단위 중 하나는 systemd-tmpfiles-setup입니다. 서비스는 다음 명령을 실행합니다.

# systemd-tmpfiles --create --remove 

이 명령은 다음 위치에서 구성 파일을 읽습니다(먼저 관련성이 없음).

  • /usr/lib/tmpfiles.d/*.conf- 이 파일은 관련 RPM 패키지에서 제공되므로 시스템 관리자가 편집하면 안 됩니다.
  • /run/tmpfiles.d/*.conf- 이 파일은 일반적으로 데몬 프로세스에서 자체 런타임 임시 파일을 관리하는 데 사용됩니다.
  • /etc/tmpfiles.d/*.conf- 이 파일은 sysadmis에서 사용자 정의 임시 위치를 구성하고 공급업체가 제공한 기본값을 재정의하는 데 사용됩니다.

임시 파일을 저장할 수 있는 세 가지 위치도 있습니다.

  • /var- 이 시스템과 관련된 변수 데이터는 출시 간에 유지되어야 합니다.
  • /달리기- 마지막 시작 이후 시작된 프로세스에 대한 런타임 데이터입니다. 여기에는 프로세스 ID 파일, 잠금 파일 등이 포함됩니다. 이 디렉터리의 내용은 재부팅 시 다시 생성됩니다.
  • /tmp- 임시 파일을 위한 전 세계 쓰기 가능 공간. 10일 이내에 접근, 변경, 수정되지 않은 파일은 자동으로 삭제됩니다. /var/tmp에는 또 다른 임시 디렉토리가 있는데, 여기서 30일 이상 액세스, 변경 또는 수정되지 않은 파일은 자동으로 삭제됩니다.

합산:
tmp 구성 파일을 확인하여 tmp 설정에 왜 그렇게 많은 시간이 걸리는지 확인하십시오. 특히 /run 디렉토리의 항목은 시작 시 다시 생성되기 때문에 더욱 그렇습니다.

답변2

이는 /tmp에 수백만 개의 파일을 생성하는 Chrome 베타 및 Cup의 문제 때문입니다. /tmp가 적합한 tmpfs라면 마운트 해제했다가 다시 마운트해 보세요. 그렇지 않으면 rm -rf /tmp를 실행하고 다시 생성하세요.

답변3

systemd-tmpfiles는 네트워크가 시작되기 전에 시작되므로 구성에 따라 systemd-tmpfiles 구성 파일(/usr/lib/tmpfiles.d에 있음) 중 하나가 사용자 또는 그룹에 대해서만 사용 가능한 디렉터리를 생성하려고 시도할 수 있습니다. LDAP에 정의된 사용자 또는 그룹과 같이 네트워크 시작 후 시스템에서만 사용할 수 있습니다.

이 경우 systemd-tmpfiles-setup.service를 네트워크로 이동하고 나중에 시작해야 합니다.

관련 정보