systemd에서 90s 시간 초과를 건너 뛰는 방법


15

systemd에서 90s 시간 초과를 대화식으로 건너 뛸 수 있습니까? 예를 들어, 디스크가 사용 가능할 때까지 기다리거나 사용자가 로그 아웃 할 때? 나는 그것이 결국에는 실패 할 것이라는 것을 알고 있습니다. 나는 무력하게 화면을 응시하는 것이 싫어.

답변:


11

두 가지 옵션이 있습니다.

  1. 당신은 설정할 수 있습니다 TimeoutStopSpec=기다려야 (초 *) 특정 값으로 특정 장치에. infinity이 경우 SIGKILL이 전송되지 않도록 설정할 수도 있습니다 (디버깅하기 어려운 런 어웨이 서비스로 끝날 수 있으므로 권장하지 않음).

  2. 설정 DefaultTimeoutStopSec=내부 /etc/systemd/system.conf(또는 user.conf, 또는 중 하나 *.d하지 않는 모든 유닛하는 기본값으로 디렉토리) TimeoutStopSpec=지정을 사용합니다. 이 설정의 단점은 일반적으로 볼 수있는 90입니다.

매뉴얼 페이지 참조 :

  • man systemd.service ...에 대한 TimeoutStopSpec=
  • man systemd-system.conf ...에 대한 DefaultTimeoutStopSec=

* systemd는 또한 시간 사양 (예 : "2min 3s")도 허용합니다. 그것은 남자에게 광범위하게 설명되어 있습니다.


10
이것은 대화식이 아닙니다. systemd가 이미 90 년대를 카운트 다운하고있을 때, 이러한 변경을하기에는 너무 늦었고, 나는 무력하게 앉아야합니다.
user7610

@JiriDanek-systemd는 대화식이 아니기 때문에 의도 된 것이 아닙니다. tty 프로세스 (90 년대가 보임)는 init (시스템)의 자식으로 실행됩니다. 즉, 90을 표시하는 (getty) 프로세스는 (계산 된) 프로세스의 자식입니다. 또한 systemd는 대부분의 신호를 무시합니다. systemd는 tty 앞에서 임의의 사용자가 제어하지 않습니다 (큰 보안 위험이 될 수 있음).
grochmal

4
나는 주로 데스크톱 사용자이므로 사물을 다르게 보는 경향이 있습니다. 토발즈의 딸의 프린터를 기억 하십니까? 보안 문제로 인해 많은 설계 부적합이 정당화 될 수 있습니다.
user7610

@ JiriDanek-systemd는 문제 가되지 않습니다 . 실제 공격 벡터 일 것입니다. 적절한 순간에 올바른 신호를 목표로 할 수 있다면 (일반 사용자로서) 시스템 서비스 (예 : SELinux)를 비활성화 할 수 있습니다. /etc/systemd/system.con으로 이동하여 DefaultTimeout = 3을 추가하십시오. 또는 실패한 서비스를 수정하십시오. 일부 서비스가 항상 실패한다는 것은 시스템 디자인의 나쁜 디자인이 아니며 유닛 파일을 작성한 사람의 나쁜 디자인입니다.
grochmal

필자의 구체적인 경우, 단위 파일의 작성자는 결백합니다. 디스크 UUID를 복사하여 붙여 넣을 때 오타가 발생했습니다. systemd가 포기하고 시스템에 들어가서 문제를 해결하기 전에 1 분 반 정도 기다려야한다는 것을 자극하는 것으로 나타났습니다. 긴 시간 초과는 실제로 여기서 의미가 있습니다. 내가 관리자를 알고있는 경우를 제외하고는 그렇지 않습니다.
user7610


6

/etc/systemd/system.conf줄 에서 주석을 제거 할 수 있습니다 .

DefaultTimeoutStartSec=90s
DefaultTimeoutStopSec=90s

그리고 값을 적절하다고 생각하는 것으로 변경하십시오.


7
다른 답변과 마찬가지로 대화 형이 아닙니다. systemd가 이미 90 년대를 카운트 다운하고있을 때, 이러한 변경을하기에는 너무 늦었고, 나는 무력하게 앉아야합니다.
user7610
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.