回答編集履歴

2

リンクがたどりにくいと思われるのでマークしました。

2020/07/26 02:37

投稿

mit0223
mit0223

スコア3401

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ランレベル3で稼働中のシステムをシャットダウンするとランレベル0に移行します。
4
4
 
5
- 参考: https://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%83%AC%E3%83%99%E3%83%AB
5
+ 参考: [ウィキペディア:ランレベル](https://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%83%AC%E3%83%99%E3%83%AB)
6
6
 
7
7
 
8
8
 
@@ -24,7 +24,7 @@
24
24
 
25
25
  まず、状態遷移マシンという考え方を理解してください。UMLの解説ですが、以下などを参考にしてください。
26
26
 
27
- https://www.changevision.co/tutorial-statemachine-japanese.html
27
+ [ステートマシン図& 状態遷移表チュートリアル](https://www.changevision.co/tutorial-statemachine-japanese.html)
28
28
 
29
29
  ランレベルというのはこの状態遷移マシンの状態のことです。そして、シャットダウンや電源断は状態遷移を引き起こすイベントです。シャットダウン時にサービスのプロセスを終了したり、ネットワークを停止したりするのがアクションです。
30
30
 
@@ -48,8 +48,8 @@
48
48
 
49
49
  の下に Sで始まるスクリプトでそのランレベルに遷移するときの entry アクションを記述し、Kで始まるスクリプトで exit アクションを記述してました。
50
50
 
51
- 参考: https://itsakura.com/centos-rcscript
51
+ 参考: [CentOS rcスクリプトとランレベル毎のシンボリックリンク](https://itsakura.com/centos-rcscript)
52
52
 
53
53
  最近は systemd になったので、ランレベルという概念ではなくなりました。
54
54
 
55
- 参考: https://www.bnote.net/centos/runlevel.html
55
+ 参考: [ランレベルはどこへ行った?(Systemdになってランレベルはどうなったのか)](https://www.bnote.net/centos/runlevel.html)

1

状態遷移の考え方を説明

2020/07/26 02:37

投稿

mit0223
mit0223

スコア3401

test CHANGED
@@ -3,3 +3,53 @@
3
3
  ランレベル3で稼働中のシステムをシャットダウンするとランレベル0に移行します。
4
4
 
5
5
  参考: https://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%83%AC%E3%83%99%E3%83%AB
6
+
7
+
8
+
9
+ 2020/7/26追記
10
+
11
+ コメントより
12
+
13
+ > ランレベルを0に変更してシステムをシャットダウンするユースケースはないという理解で合っておりますでしょうか?
14
+
15
+
16
+
17
+ 質問内容からするとランレベルの概念を誤解されているように思われます。
18
+
19
+ 「ランレベルを0に変更するという操作」というよりも、シャットダウンするとランレベルが0になると考えてください。
20
+
21
+ では、なぜランレベルとうい概念があるのでしょうか。
22
+
23
+
24
+
25
+ まず、状態遷移マシンという考え方を理解してください。UMLの解説ですが、以下などを参考にしてください。
26
+
27
+ https://www.changevision.co/tutorial-statemachine-japanese.html
28
+
29
+ ランレベルというのはこの状態遷移マシンの状態のことです。そして、シャットダウンや電源断は状態遷移を引き起こすイベントです。シャットダウン時にサービスのプロセスを終了したり、ネットワークを停止したりするのがアクションです。
30
+
31
+
32
+
33
+ なぜ、ランレベルという概念があるかと言うと、シャットダウンなどのイベントが発生したときに実行すべきアクションをわかりやすく整理するためです。たとえば、
34
+
35
+
36
+
37
+ - ランレベル0からランレベル1以上に移行するときは、getty を起動する。
38
+
39
+ - ランレベル0からランレベル3以上に移行するときは、ネットワークを起動する。
40
+
41
+ - ランレベル6に移行するときはXウィンドウを起動する
42
+
43
+
44
+
45
+ と言うように状態が遷移するときのアクションとしてシステムの様々な機能の起動終了やON/OFFを制御しようという考え方です。これにより、イベント(haltコマンド投入、電源ボタン押下、電池残量低下、攻撃検知)とアクションを分離して整理することができるわけです。
46
+
47
+ 昔の Linux では、/etc/rc.d/rc0.d /etc/rc.d/rc1.d /etc/rc.d/rc3.d /etc/rc.d/rc6.d
48
+
49
+ の下に Sで始まるスクリプトでそのランレベルに遷移するときの entry アクションを記述し、Kで始まるスクリプトで exit アクションを記述してました。
50
+
51
+ 参考: https://itsakura.com/centos-rcscript
52
+
53
+ 最近は systemd になったので、ランレベルという概念ではなくなりました。
54
+
55
+ 参考: https://www.bnote.net/centos/runlevel.html