貧弱なsystemd
中傷者のシェアを持っていますが、Linux管理者のためにここにとどまるように思われるので、私たちはそれに慣れたほうがよいでしょう。この便利なsystemd
コマンドリファレンスは、通常の管理タスクを実行しようとするときに正気を保つのに役立ちます。したがって、systemd
よりも使いやすく、口当たりが良く、望ましいものが得られるまでは 、便利な10個の便利なコマンドのリストをお楽しみください。これらのコマンドは、重要性や関連性の特定の順序ではありません。
ユニットファイルの一覧表示
systemd
から マンページ:ユニットファイルは、サービス、ソケット、デバイス、マウントポイント、自動マウントポイント、スワップファイルまたはパーティション、起動ターゲット、監視対象ファイルに関する情報をエンコードするプレーンテキストのiniスタイルのファイルです。システムパス、systemd
によって制御および監視されるタイマー 、リソース管理スライス、または外部で作成されたプロセスのグループ。
$ systemctl list-unit-files
UNIT FILE STATE
proc-sys-fs-binfmt_misc.automount static
dev-hugepages.mount static
dev-mqueue.mount static
proc-sys-fs-binfmt_misc.mount static
sys-fs-fuse-connections.mount static
sys-kernel-config.mount static
sys-kernel-debug.mount static
tmp.mount disabled
brandbot.path disabled
systemd-ask-password-console.path static
systemd-ask-password-plymouth.path static
systemd-ask-password-wall.path static
session-1.scope static
arp-ethers.service disabled
auditd.service enabled
[email protected] enabled
<many more entries>
もちろん、いつでもgrep
にパイプできます 有効なサービスだけを表示します。
$ systemctl list-unit-files |grep enabled
auditd.service enabled
[email protected] enabled
crond.service enabled
dbus-org.fedoraproject.FirewallD1.service enabled
dbus-org.freedesktop.nm-dispatcher.service enabled
firewalld.service enabled
[email protected] enabled
irqbalance.service enabled
kdump.service enabled
lvm2-monitor.service enabled
<many more entries>
これらのユニットファイルは、/lib/systemd/system
の下にあります。 、は、/etc/rc.d/init.d
の下にある従来のinitスクリプトとほぼ同等です。 。実際、あなたまたはあなたのソフトウェアインストールがinitスクリプトを作成する場合、対応するsystemd
ユニットファイルがマッピングされます。詳細については、/etc/rc.d/init.d/README
を参照してください。 :
You are looking for the traditional init scripts in /etc/rc.d/init.d,
and they are gone?
Here's an explanation on what's going on:
You are running a systemd-based OS where traditional init scripts have
been replaced by native systemd services files. Service files provide
very similar functionality to init scripts. To make use of service
files simply invoke "systemctl", which will output a list of all
currently running services (and other units). Use "systemctl
list-unit-files" to get a listing of all known unit files, including
stopped, disabled and masked ones. Use "systemctl start
foobar.service" and "systemctl stop foobar.service" to start or stop a
service, respectively. For further details, please refer to
systemctl(1).
Note that traditional init scripts continue to function on a systemd
system. An init script /etc/rc.d/init.d/foobar is implicitly mapped
into a service unit foobar.service during system initialization.
Thank you!
Further reading:
man:systemctl(1)
man:systemd(1)
http://0pointer.de/blog/projects/systemd-for-admins-3.html
http://www.freedesktop.org/wiki/Software/systemd/Incompatibilities
ご覧のとおり、init.d
systemd
を優先して削除されました 。誰かがより良いものを思い付くまでここにとどまります。 (誰かが迅速に交換に取り組んでいることを望んでいます。)
リストユニット
アクティブなユニットを一覧表示すると、ロードされたアクティブなサービスに関する多くの有用な情報が表示されます。出力は詳細すぎてここで説明できませんが、システムで次のコマンドを試して、意味を確認してください。
$ systemctl list-units
ステータスフィールドは見栄えがしますが、説明フィールドは私にとって最も便利です。サービスに関する詳細情報を提供します。
サービスを開始する
サービス名を取得するには、必要なユニットファイルとgrepをリストします。次に、systemctl
を使用します サービスを開始するコマンド。 firewalld
を使用しています 例として。
$ sudo systemctl start firewalld
驚くべきことに、またはそれほど驚くことではないかもしれませんが、サービスの開始、停止、または再開からの応答はありません。サービスのステータスを確認するには、statusコマンドを使用する必要があります。
サービスステータスの確認
サービスのステータスを確認するには、systemctl status service-name
コマンド。
$ sudo systemctl status sshd
[sudo] password for khess:
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-04-29 07:44:57 CDT; 2h 17min ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 1055 (sshd)
CGroup: /system.slice/sshd.service
└─1055 /usr/sbin/sshd -D
Apr 29 07:44:57 centos7 systemd[1]: Starting OpenSSH server daemon...
Apr 29 07:44:57 centos7 sshd[1055]: Server listening on 0.0.0.0 port 22.
Apr 29 07:44:57 centos7 sshd[1055]: Server listening on :: port 22.
Apr 29 07:44:57 centos7 systemd[1]: Started OpenSSH server daemon.
Apr 29 07:51:35 centos7 sshd[1396]: Accepted password for khess from 192.168.1.85 port 56769 ssh2
詳細が記載されているので、systemdのステータスが気に入っています。たとえば、上記のリストには、ユニットファイルへのフルパス、ステータス、開始コマンド、および最新のステータス変更が表示されます。
[Red Hat Enterprise Linuxを試してみませんか?今すぐ無料でダウンロードしてください。 ]
サービスを停止する
実行中のサービスを停止するのは、サービスを開始するのと同じくらい簡単です。
$ sudo systemctl stop firewalld
この場合も、このコマンドを発行しても応答はありません。サービスステータスを発行して、成功または失敗を確認します。
サービスの再開
2つのコマンドを発行せずにサービスを停止および開始する場合(システム管理者は結局のところ怠惰なロットです)、再起動を発行します。
$ sudo systemctl restart firewalld
システムの応答は表示されません。
システムの再起動、停止、およびシャットダウン
これらの3つのタスクは、システム管理者が知る必要のある典型的なタスクであり、現在はsystemd
の制御下にあります。 。
再起動
システムを再起動する方法は複数ありますが、古いスタンバイである再起動は、実際にはsystemctl
へのリンクです。 指図。動作するので、systemctl
をリンクしていると思います 次のように再起動スイッチを追加したコマンド:
$ sudo systemctl reboot
同じリンクが停止コマンドとシャットダウンコマンドに適用されます。
シャットダウンして停止
halt -p
でどのように使用したかは関係ありません またはshutdown now
または何であれ、ユニバーサルコマンドは次のようになります:
$ sudo systemctl poweroff
このコマンドはシステムの電源を切ります。
起動時に実行するようにサービスを設定する
chkconfig
に慣れています 起動時および特定のランレベルでサービスを実行できるようにするコマンド。さて、当時も過ぎ去り、ユビキタスなsystemctl
に奪われました。 コマンド。
起動時にサービスを実行できるようにする
起動時に開始するサービスを設定するには、次のコマンドを発行します。 firewalld
を使用しています サンプルサービスとして。
$ sudo systemctl enable firewalld
起動時にサービスの実行を無効にする
起動時にサービスが開始されないようにするには、次を発行します。
$ sudo systemctl disable firewalld
firewalld
起動時にサービスが開始されません。
まとめ
この短いが便利なsystemd/systemctl
リファレンスガイドは、systemd
を扱う際の苦痛をいくらか取り除く必要があります 。それが少なくとも理論です。そして、私の記事でよく見たり、私が大声で言うのを聞いたりするように、「すべてが紙の上で機能します」。私の記事についてのあなたの考えをTwitterで知らせてください。また、新しいトピックを提案してください。
[無料のオンラインコース:Red HatEnterpriseLinuxの技術概要。 ]