부팅 할 때 plymouth 서비스를 비활성화하여 Ubuntu GNOME 16.04의 부팅 시간을 개선하고 싶습니다. 다양한 웹 사이트에서 수행하는 방법에 대한 두 가지 답변을 찾았습니다.
# systemctl disable plymouth-quit-wait.service
# systemctl mask plymouth-quit-wait.service
그들이하는 일을 모른다면 위의 어느 것도 실행할 수 없습니다.
부팅 할 때 plymouth 서비스를 비활성화하여 Ubuntu GNOME 16.04의 부팅 시간을 개선하고 싶습니다. 다양한 웹 사이트에서 수행하는 방법에 대한 두 가지 답변을 찾았습니다.
# systemctl disable plymouth-quit-wait.service
# systemctl mask plymouth-quit-wait.service
그들이하는 일을 모른다면 위의 어느 것도 실행할 수 없습니다.
답변:
서비스가 enabled
인 경우 어딘가에 심볼릭 링크가 있습니다
/etc/systemd/system
단위 파일에, 가장 자주 어딘가에
/lib/systemd/system
유용하게도 enable
서비스를 수행하면 작성된 링크 및 대상의 전체 경로가 stdout에 인쇄됩니다.
서비스를 비활성화 하면 심볼릭 링크가 삭제되므로 장치 파일 자체는 영향을받지 않지만 systemd reads 인 경우 다음 부팅시 서비스가로드되지 않습니다 /etc/systemd/system
.
그러나 비활성화 된 서비스 를 로드 할 수 있으며이 서비스에 의존하는 서비스가 시작 되면 시작됩니다 . enable
및 disable
단지 구성 자동 시작 단위 행동 및 상태를 쉽게 무시됩니다.
마스크 서비스는 그 장치 파일에 대한 심볼릭 링크이다 /dev/null
. 따라서 다른 활성화 된 서비스가 필요하더라도 서비스를로드하는 것이 "불가능"합니다.
때 mask
서비스, 심볼릭 링크가에서 만든 /etc/systemd/system
에 /dev/null
다른 곳에서 그대로 원래의 유닛 파일을 떠나. 때 unmask
심볼릭 링크를 삭제하는 서비스.
그러나 나는이 명령들이 항상 존경받는 것은 아님을 알았다.
대부분의 서비스를 마스킹하려고하면 실패합니다.
$ sudo systemctl mask bluetooth.service
Failed to execute operation: Invalid argument
물론 서비스를 먼저 중단했습니다. @Anwar는 마스킹이 중요하지 않은 서비스에만 가능하다고 제안합니다.
직접 마스크하지 않으면 마스크 된 서비스를 마스크 해제해도 실패합니다 (자동). 나는 생각 에 심볼릭 링크의 형태를 제외하고, 서비스 어디서나에 대한 유닛 파일이 없기 때문에 이것이 /dev/null
이 시간에, /lib/systemd/system
:
$ file $(locate fuse.service)
/lib/systemd/system/fuse.service: symbolic link to /dev/null
$ sudo systemctl unmask fuse.service
$ systemctl status fuse
● fuse.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)
마스킹 된 서비스 x11-common을 실제로 마스크 해제하려면 /dev/null
및에 대한 심볼릭 링크를 삭제해야했습니다 sudo apt-get install --reinstall x11-common && sudo systemctl daemon-reload
. 이제 쿼리를 systemctl status x11-common
하면 서비스에 멋진 녹색 원이 있고 단위 파일이 없지만로드되고 활성 (종료)됩니다.
자세한 내용은 Systemctl 사용 방법 에 대한이 기사를 참조 하십시오 .
systemctl status x11-common ● x11-common.service Loaded: masked (/dev/null; bad) Active: inactive (dead)
. 그게 나쁜가요? 하지만 우분투가 아니라 데비안에 있습니다. 어쨌든, 좋은 설명. 고맙습니다.
꽤 간단합니다.
systemctl start
, systemctl stop
: 해당 장치를 즉시 시작 (중지)합니다 .systemctl enable
, systemctl disable
: 부팅시 자동 시작을 위해 장치를 표시 (표시 해제)합니다 ( [Install]
섹션에 설명 된 장치 별 방식 ).systemctl mask
, systemctl unmask
: 문제의 장치를 시작하려는 모든 시도 및 모든 시도를 수동으로 또는 기본 부팅 대상의 종속성을 포함하여 다른 장치의 종속성으로 허용하지 않습니다 (허용). systemd에서 자동 시작 표시는 기본 부팅 대상에서 해당 장치에 인공 종속성을 추가하여 구현되므로 "마스크"도 자동 시작을 허용하지 않습니다.참조 : systemctl (1) .
더 : Lennart Poettering (2011-03-02). "세 가지 수준의 꺼짐" . 관리자 용 시스템 . 0pointer.de.
한마디로
disable
부팅하는 동안 장치를 비활성화합니다. 그러나 부팅 후 언제든지 해당 장치를 시작할 수 있습니다.
mask
장치를 완전히 비활성화합니다. 마스킹 해제 없이는 시작할 수 없습니다. 이는 부팅 중에 실패한다는 것을 자동으로 암시합니다.
mask
하고 unmask
당신을 위해 사용할 수 있습니까? (테스트하고 싶지 않다면 완전히 이해합니다!)
postgresql@9.5-main.service
서비스 와 함께 .