sudo 서비스 상태에 불량이 있습니다.


32
$ sudo service cassandra status
● cassandra.service - LSB: distributed storage system for structured data
   Loaded: loaded (/etc/init.d/cassandra; bad; vendor preset: enabled)
   Active: active (running) since Wed 2016-10-12 15:54:40 IDT; 4min 4s ago

bad;출력의 두 번째 줄에 있는 부분은 무엇 을 의미합니까? 나는 mysql, winbind, virtualbox와 같은 많은 서비스에 대해 이것을 얻었습니다.이 중 일부는 이미 완벽하게 사용했습니다 (cassandra는 새로운 설치입니다).

답변:


42

짧은 답변:

  • bad: Systemd Unit files활성화 상태를 보여줍니다
  • 사용하는 시스템에서 이러한 종류의 메시지가 표시됩니다 systemd
  • 다음 명령을 사용하여 활성화 상태를 확인할 수 있습니다.

    sudo systemctl is-enabled <unit-name>
    

    그 유닛 파일이 기본 systemd 서비스의 경우 다음 출력을 줄 것이다 enabled, disabled다음과 같은 메시지를보고 줄 것이다 기본 systemd 서비스가 아닌 경우 등.

    sudo systemctl is-enabled apache2
    apache2.service is not a native service, redirecting to systemd-sysv-install
    Executing /lib/systemd/systemd-sysv-install is-enabled apache2
    enabled
    

    그러나 명령으로 :

    systemctl status apache2
    or
    service apache2 status
    

    그것은 상태를 제공합니다 bad. (아마도 완전한 메시지를 인쇄 할 수 없거나 개발자가 인쇄하기로 결정했기 때문일 수 있습니다 bad)

긴 답변 :

시스템 장치 파일이란 무엇입니까?

단위는 체계적으로 관리하는 방법을 알고있는 객체입니다. 이들은 기본적으로 데몬 스위트가 관리하고 제공된 유틸리티로 조작 할 수있는 시스템 자원의 표준화 된 표현입니다. 서비스, ​​네트워크 리소스, 장치, 파일 시스템 마운트 및 격리 된 리소스 풀을 추상화하는 데 사용할 수 있습니다. 여기여기에서 시스템 단위에 대한 자세한 내용을 읽을 수 있습니다

예:

systemctl status apache2
* apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           `-apache2-systemd.conf
   Active: active (running) since Wed 2016-10-12 14:29:42 UTC; 17s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 1027 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)

systemctl은 apache2기본 단위인지 여부를 확인합니다 . 그렇지 않은 경우 systemd-sysv-generator기본 단위와 유사한 지원을 제공하는 단위 형식으로 파일을 생성 하도록 요청 합니다. 위 예제에서 생성 된 파일은 /lib/systemd/system/apache2.service.d/apache2-systemd.conf

Drop-In: /lib/systemd/system/apache2.service.d
               `-apache2-systemd.conf

참고 : 발전기를 찾을 수 있으며 이에 /lib/systemd/system-generators/systemd-sysv-generator대한 자세한 내용을 읽을 수 있습니다

man systemd-sysv-generator

요점 :

is-enabled NAME...
       Checks whether any of the specified unit files are enabled (as with
       enable). Returns an exit code of 0 if at least one is enabled,
       non-zero otherwise. Prints the current enable status (see table).
       To suppress this output, use --quiet.

       Table 1.  is-enabled output
       +------------------+-------------------------+-----------+
       |Name              | Description             | Exit Code |
       +------------------+-------------------------+-----------+
       |"enabled"         | Enabled via             |           |
       +------------------+ .wants/, .requires/     |           |
       |"enabled-runtime" | or alias symlinks       |           |
       |                  | (permanently in         | 0         |
       |                  | /etc/systemd/system/,   |           |
       |                  | or transiently in       |           |
       |                  | /run/systemd/system/).  |           |
       +------------------+-------------------------+-----------+
       |"linked"          | Made available through  |           |
       +------------------+ one or more symlinks    |           |
       |"linked-runtime"  | to the unit file        |           |
       |                  | (permanently in         |           |
       |                  | /etc/systemd/system/    |           |
       |                  | or transiently in       | > 0       |
       |                  | /run/systemd/system/),  |           |
       |                  | even though the unit    |           |
       |                  | file might reside       |           |
       |                  | outside of the unit     |           |
       |                  | file search path.       |           |
       +------------------+-------------------------+-----------+
       |"masked"          | Completely disabled,    |           |
       +------------------+ so that any start       |           |
       |"masked-runtime"  | operation on it fails   |           |
       |                  | (permanently in         | > 0       |
       |                  | /etc/systemd/system/    |           |
       |                  | or transiently in       |           |
       |                  | /run/systemd/systemd/). |           |
       +------------------+-------------------------+-----------+
       |"static"          | The unit file is not    | 0         |
       |                  | enabled, and has no     |           |
       |                  | provisions for enabling |           |
       |                  | in the "[Install]"      |           |
       |                  | section.                |           |
       +------------------+-------------------------+-----------+
       |"indirect"        | The unit file itself is | 0         |
       |                  | not enabled, but it has |           |
       |                  | a non-empty Also=       |           |
       |                  | setting in the          |           |
       |                  | "[Install]" section,    |           |
       |                  | listing other unit      |           |
       |                  | files that might be     |           |
       |                  | enabled.                |           |
       +------------------+-------------------------+-----------+
       |"disabled"        | Unit file is not        | > 0       |
       |                  | enabled, but contains   |           |
       |                  | an "[Install]" section  |           |
       |                  | with installation       |           |
       |                  | instructions.           |           |
       +------------------+-------------------------+-----------+
       |"bad"             | Unit file is invalid or | > 0       |
       |                  | another error occurred. |           |
       |                  | Note that is-enabled    |           |
       |                  | will not actually       |           |
       |                  | return this state, but  |           |
       |                  | print an error message  |           |
       |                  | instead. However the    |           |
       |                  | unit file listing       |           |
       |                  | printed by              |           |
       |                  | list-unit-files might   |           |
       |                  | show it.                |           |
       +------------------+-------------------------+-----------+

우리가 명령을 실행하면 :

sudo systemctl is-enabled ssh
enabled

sudo systemctl is-enabled docker
enabled

sudo systemctl is-enabled apache2
apache2.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install is-enabled apache2
enabled

단위처럼 systemd 네이티브 있다면 당신은 볼 수 sshdocker, 위의 출력에만 표시됩니다 enabled,와 같은 네이티브 있지 않습니다 단위 apache2하지만 여전히 오히려 인쇄보다 그와 메시지를 제공합니다 사용할 수 bad있기 때문에이 상태로 여기 :

       +------------------+-------------------------+-----------+
       |"bad"             | Unit file is invalid or | > 0       |
       |                  | another error occurred. |           |
       |                  | Note that is-enabled    |           |
       |                  | will not actually       |           |
       |                  | return this state, but  |           |
       |                  | print an error message  |           |
       |                  | instead. However the    |           |
       |                  | unit file listing       |           |
       |                  | printed by              |           |
       |                  | list-unit-files might   |           |
       |                  | show it.                |           |
       +------------------+-------------------------+-----------+

해결책:

상태 bad는 문제를 일으키지 않지만 (의지 여부 는 확실하지 않지만)의 모든 기능을 제공하지는 않습니다 systemctl. package기본적으로 지원할 다음 릴리스를 기다릴 수 있습니다 systemd. 또는 주어진 참조를 사용하여 서비스 또는 기타 리소스에 대한 단위 파일을 작성할 수 있습니다.

아래 참조를 사용하여 systemd, systemctl 및 units에 대해 자세히 읽을 수 있습니다.

  1. Systemctl

  2. 시스템 단위여기

  3. 체계화


주제에 대한 철저하고 신중한 심의에 감사드립니다!
matt

2
이 답변은 실제로 완전하지만 혼란 스럽습니다 ... 정보에서 파생 될 수있는 간결한 결론을 실제로 밝히지 않고 많은 정보를 제공하는 것 같습니다. 예를 들어, 짧은 대답에서 내가 직접 (간결하게) 추측하는 직접적이고 간결한 결론은 서비스 (systemd unit)가 네이티브가 아닌 경우 systemctl이 systemd-sysv-install로 리디렉션하지 않고 활성화 상태를 얻을 수 없다는 것입니다. 어떤 이유로 든 systemctl status 명령은 그렇게하지 않고 대신 "나쁜"것으로보고하지만 systemctl is-enabled는 리디렉션을 수행하여 상태를 알려줍니다.
EricS 2016 년

1
나는 혼란 스러웠던 것 중 일부는 특히 첫 글 머리 기호 부분에서 약간의 표현이라고 생각한다. 개선하기 위해 수정 사항을 제출했습니다.
EricS 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.