status layanan sudo termasuk buruk;

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

Apa artinya bad;bagian pada baris ke-2 dari output? Saya mendapatkan ini untuk banyak layanan, misalnya mysql, winbind, virtualbox, beberapa di antaranya telah saya gunakan dengan sempurna (Cassandra menjadi instalasi baru).

matt
sumber

Jawaban:

42

Jawaban singkat:

  • bad: Ini menunjukkan Systemd Unit filesstatus pemberdayaan
  • Anda akan melihat pesan semacam ini pada sistem yang digunakan systemd
  • Anda dapat memeriksa status pemberdayaan menggunakan perintah:

    sudo systemctl is-enabled <unit-name>
    

    jika file unit layanan systemd asli maka akan memberikan output enabled, disabled, dll Jika itu bukan layanan systemd asli maka akan memberikan melaporkan pesan seperti.

    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
    

    tetapi dengan perintah:

    systemctl status apache2
    or
    service apache2 status
    

    itu memberi status bad. (mungkin itu karena tidak dapat mencetak pesan lengkap atau pengembang memutuskan untuk mencetak bad)

Jawaban panjang:

apa file unit sistem?

Unit adalah objek yang bisa dikelola oleh systemd. Ini pada dasarnya adalah representasi standar dari sumber daya sistem yang dapat dikelola oleh rangkaian daemon dan dimanipulasi oleh utilitas yang disediakan. Ini dapat digunakan untuk layanan abstrak, sumber daya jaringan, perangkat, mount sistem file, dan kumpulan sumber daya yang terisolasi. Anda dapat membaca secara detail tentang unit systemd di sini dan di sini

contoh:

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 akan memeriksa apakah apache2unit asli atau tidak. Jika tidak, maka ia akan meminta systemd-sysv-generatoruntuk menghasilkan file dalam format unit yang menyediakan dukungan yang mirip dengan unit asli. Dalam contoh di atas, file yang dihasilkan disimpan di /lib/systemd/system/apache2.service.d/apache2-systemd.conf

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

Catatan: Anda dapat menemukan generator di /lib/systemd/system-generators/systemd-sysv-generatordan Anda dapat membaca lebih lanjut tentang itu

man systemd-sysv-generator

Poin utama :

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.                |           |
       +------------------+-------------------------+-----------+

jika kita menjalankan perintah:

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

Anda dapat melihat apakah unit adalah asli dari systemd like sshdan docker, pada output di atas hanya akan ditampilkan enabled, dan untuk unit yang bukan asli seperti apache2tetapi masih diaktifkan memberikan pesan dengan itu daripada mencetak di badsini karena kondisi ini:

       +------------------+-------------------------+-----------+
       |"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.                |           |
       +------------------+-------------------------+-----------+

Larutan:

status badtidak akan membuat masalah (saya tidak yakin itu tergantung) tetapi tidak akan menyediakan semua fungsionalitas systemctl. Anda bisa menunggu rilis selanjutnya packageyang akan mendukungnya systemd. atau Anda dapat menulis file unit untuk layanan Anda atau sumber daya lainnya menggunakan referensi yang diberikan.

Anda dapat membaca secara detail tentang systemd, systemctl dan unit menggunakan referensi di bawah ini:

  1. Systemctl

  2. Unit Systemd dan Di Sini

  3. Systemd

pl_rock
sumber
Terima kasih banyak untuk pembahasan topik yang lengkap dan penuh pertimbangan!
matt
2
Jawaban ini tampaknya sangat lengkap tetapi agak membingungkan ... Anda tampaknya memberikan banyak info tanpa benar-benar menyatakan kesimpulan ringkas bahwa seseorang dapat (mungkin) berasal dari info tersebut. Sebagai contoh kesimpulan langsung dan ringkas yang saya simpulkan (dengan beberapa pekerjaan) dari jawaban singkat Anda adalah bahwa ketika sebuah layanan (systemd unit) bukan asli, systemctl tidak bisa mendapatkan status pemberdayaannya tanpa mengalihkan ke systemd-sysv-install. Perintah status systemctl untuk beberapa alasan tidak melakukan itu tetapi malah melaporkan "buruk", sedangkan systemctl diaktifkan akan melakukan pengalihan untuk memberi Anda status.
EricS
1
Saya pikir beberapa yang membingungkan saya adalah beberapa kata-kata, terutama dalam poin-poin pembuka. Saya mengirimkan beberapa suntingan untuk mencoba meningkatkan.
EricS