사용자 도구

사이트 도구


linux:systemd

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
linux:systemd [2022/10/11 09:50]
kwon37xi [user 시작 프로그램]
linux:systemd [2025/01/17 14:01] (현재)
kwon37xi [일괄로 종료 Timeout 지정]
줄 27: 줄 27:
 # booting 시 시작하게 하면서, 지금 당장도 실행하게 # booting 시 시작하게 하면서, 지금 당장도 실행하게
 systemctl enable --now unit systemctl enable --now unit
 +</code>
 +
 +===== environment.d =====
 +  * 세션 시작시 환경 변수를 설정하기
 +  * script 는 안되고, ''NAME=value'' 형태만 된다.
 +  * [[https://www.freedesktop.org/software/systemd/man/environment.d.html|environment.d]]
 +  * ''/etc/environment.d/*.conf'', ''~/.config/environment.d/*.conf'' 파일에 환경변수를 ''NAME=VALUE'' 형태로 지정한다.
 +  * 스크립트를 넣을 수는 없다.
 +
 +<code>
 +# 예시 /etc/environment.d/60-foo.conf:
 +
 +FOO_DEBUG=force-software-gl,log-verbose
 +PATH=/opt/foo/bin:$PATH
 +LD_LIBRARY_PATH=/opt/foo/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
 +XDG_DATA_DIRS=/opt/foo/share:${XDG_DATA_DIRS:-/usr/local/share/:/usr/share/}
 </code> </code>
  
줄 45: 줄 61:
   * [[linux:grub|Linux Grub]] 에서 커널 설정에 ''init=/lib/systemd/systemd-bootchart'' 넣고 부팅하면 ''/run/log/bootchart-날짜-번호.svg'' 파일이 생성되고 이 이미지를 보고 부팅 성능 병목 지점을 찾을 수 있다.   * [[linux:grub|Linux Grub]] 에서 커널 설정에 ''init=/lib/systemd/systemd-bootchart'' 넣고 부팅하면 ''/run/log/bootchart-날짜-번호.svg'' 파일이 생성되고 이 이미지를 보고 부팅 성능 병목 지점을 찾을 수 있다.
   * [[https://www.facebook.com/groups/ubuntu.ko/permalink/3721279894576497/|systemd bootchart 설명]]   * [[https://www.facebook.com/groups/ubuntu.ko/permalink/3721279894576497/|systemd bootchart 설명]]
 +
 +===== Shutdown 이 너무 느릴 때 =====
 +  * ''shutdown'' / 종료 등이 너무 느릴 때 분석해서 문제가 되는 서비스를 종료처리하거나 각종 타임아웃 설정을 해줘야 한다.
 +==== 분석 ====
 +  * ''journalctl -b -1'' 은 이전 부팅 로그를 표시하며, 종료 전의 로그를 확인할 수 있다.
 +
 +<code sh>
 +sudo journalctl -b -1 > log
 +</code>
 +  * 위 ''log'' 파일을 분석해서 ''stopping'' 로그 들 중에 ''timeout'' 분석해서 처리한다.
 +
 +==== 일괄로 종료 Timeout 지정 ====
 +  * 분석이 힘들거나 할 경우 다음과 같이 일괄 타임아웃을 지정할 수도 있다.
 +  * ''/etc/systemd/system.conf'' <code>
 +DefaultTimeoutStopSec=10s # 원래 90s 임.
 +</code>
 +  * 재시작 <code sh>
 +sudo systemctl daemon-reexec
 +
 +</code>
  
 ===== systemd 는 어떻게 기존 SysVInit 의 /etc/init.d/* 서비스를 인식하는가 ===== ===== systemd 는 어떻게 기존 SysVInit 의 /etc/init.d/* 서비스를 인식하는가 =====
linux/systemd.1665449444.txt.gz · 마지막으로 수정됨: 2022/10/11 09:50 저자 kwon37xi