お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2008-09-03 11:44:40

kuronekox
メンバ
登録日: 2008-08-20

Ubuntu Linuxの起動順序

お世話になっております。

下記URLなどを参考に、ひとつずつ勉強しております。
http://www.atmarkit.co.jp/flinux/rensai … ry10a.html

Ubuntuには/etc/inittab が無く、こちらのフォーラムを検索し、sysvinit の代替手段として
Upstartなる独自(?)の手順でカーネル起動後の初期立ち上げを実施しているという記事を
拝見しました。

/etc/rc[0-6].dは存在するようなのでランレベルに応じた起動プログラムの振り分けを行ったりという処理は
ありそうなのですが、(telinit で設定している?) Upstartに関する情報が上手く探し出せずにいます。

とりあえず、Ubuntu Linuxの起動のプロセス(もしくはUpstartの概要)を把握するために、ここを見ればいい、
というようなものはありませんでしょうか。 (贅沢を言えば、日本語で・・・)

# ちなみに、今具体的にやりたいことは、
sshdの設定を終え(でもキーの生成とかまだわからないのでとりあえずPassword認証・・・)
 ↓
/etc/xinetd.d/sshd を記述し、(ぶっちゃけコピペ)
 ↓
?sshdの自動起動を解除?したあと、xinetdを再起動?して、sshdをxinetd経由にする

ここでchkconfigがない--> update-rc.d だ、-->そもそもrc.dってナニ となって止まってます。

自分の認識では、rc.dは事細かに場合分けされたAutoexec.batみたいなもので、
今やろうとしてることは、sshdがAutoexec.batで起動されてるのを、xinetdでオンデマンドで起動するように
するために、autoexec.batのsshd起動の部分のくだりを削除しようとしている

という認識です。 ついでですが、この認識に間違いが無いか、確認いただければ幸いです。

最後の編集者: kuronekox (2008-09-03 11:58:19)

オフライン

 

#2 2008-09-03 15:00:55

koisan1949
メンバ
From: Hyogo, Japan
登録日: 2007-11-11

Re: Ubuntu Linuxの起動順序

 kuronekoxさん、質問の内容が初心者レベルを遙かに超越しています。
 普通のUbuntu利用者は、私を含め起動の順番など関係ないです。
 そんなこと考えなくても快適に起動し、簡単便利に操作できれば満足です。

 どうしても興味があり、探求されたいのであれば、本家であるこちらのフォーラムを
 訪問されるのを推奨します。http://www.debian.or.jp/
 Ubuntuは、debianから派生したものですから。。。 詳しくは、そちらかと思います。

 追記 更に詳細な情報が欲しいのであれば、自分で検索してみてください。
   その結果、ここが理解できないとなれば、このフォーラムで質問されると
   回答が得られ易いです。http://www.howtoforge.org/trip_search

最後の編集者: koisan1949 (2008-09-03 15:25:18)

オフライン

 

#3 2008-09-03 15:18:39

yama
メンバ
登録日: 2006-10-23

Re: Ubuntu Linuxの起動順序

kuronekox による投稿:

# ちなみに、今具体的にやりたいことは、
sshdの設定を終え(でもキーの生成とかまだわからないのでとりあえずPassword認証・・・)
 ↓
/etc/xinetd.d/sshd を記述し、(ぶっちゃけコピペ)
 ↓
?sshdの自動起動を解除?したあと、xinetdを再起動?して、sshdをxinetd経由にする

ここでchkconfigがない--> update-rc.d だ、-->そもそもrc.dってナニ となって止まってます。

自分の認識では、rc.dは事細かに場合分けされたAutoexec.batみたいなもので、
今やろうとしてることは、sshdがAutoexec.batで起動されてるのを、xinetdでオンデマンドで起動するように
するために、autoexec.batのsshd起動の部分のくだりを削除しようとしている

という認識です。 ついでですが、この認識に間違いが無いか、確認いただければ幸いです。

普通に、

コード:

sudo apt-get install ssh

すれば、インストール時に設定を含めて自動で行ってくれます。とくに手動で操作する必要はないはずです。
 とりあえずコマンドがよくわからない場合は、manコマンドを活用しましょう。詳しい解説が出ます。この場合はman update-rc.dですね。日本語でない場合は、

コード:

sudo apt-get install manpages-ja

で日本語のマニュアルがインストールされます。
update-rc.d は/etc/rc?.d/以下にリンクを自動で張ってくれるコマンドです。

オフライン

 

#4 2008-09-03 15:42:53

kuronekox
メンバ
登録日: 2008-08-20

Re: Ubuntu Linuxの起動順序

koisan1949 による投稿:

 kuronekoxさん、質問の内容が初心者レベルを遙かに超越しています。

Debianの設定例は、Googleを彷徨ってる間にいくつか見たのですが、いずれも
inittab やランレベル設定があるものとして解説されており、Ubuntuの情報がなかったため
http://forum.ubuntulinux.jp/viewtopic.php?pid=7786
こちらのフォーラムに辿り着き、投稿させて頂きました。(これも初心者サポートだったので・・・)

yama による投稿:

とくに手動で操作する必要はないはずです。

おっしゃるとおり、sshdを常時起動(?)にする場合であれば、問題ないのかと思いますが、
xinetdを使うにあたり、sshdがサーバ起動と同時に起動してしまうのをやめさせる(?)方法がわかりません。

$ sudo  update-rc.d ~ 
だけで問題ないのでしょうか?
Upstartは意識する必要はないのでしょうか?

# とりあえず、sshd起動しっぱなしの状態であれば、接続はできるようになりました!

オフライン

 

#5 2008-09-03 16:01:35

yama
メンバ
登録日: 2006-10-23

Re: Ubuntu Linuxの起動順序

Debianの系統なubuntuでは、入れたモノは使うという考え方をします。使わないなら削除せよと。
まあsshサーバの現実的な運用としては、ルータでポートを塞ぐ、iptablesで制御する。ではないでしょうか。
あまりsshdaemonの停止とかはやらないかもしれません。

起動時に動かしたくない場合は、gnomeデスクトップ環境からなら、メインメニューの、システム→システム管理→サービスの管理からON/OFFすることが出来ます。
CUIからグラフィカルに操作したい場合は、sysv.rc-conf で停止させることが出来ます。
もちろん、

コード:

sudo update-rc.d ssh remove

としても問題ありません。

オフライン

 

#6 2008-09-03 16:04:54

hito
管理者
登録日: 2007-03-18

Re: Ubuntu Linuxの起動順序

kuronekox による投稿:

自分の認識では、rc.dは事細かに場合分けされたAutoexec.batみたいなもので、
今やろうとしてることは、sshdがAutoexec.batで起動されてるのを、xinetdでオンデマンドで起動するように
するために、autoexec.batのsshd起動の部分のくだりを削除しようとしている

という認識です。 ついでですが、この認識に間違いが無いか、確認いただければ幸いです。

それでだいたい合っています。
お望みの自動再起動抑制は
$ sudo update-rc.d sshd remove
でできます。この場合は再起動後にxinetdに委任されます(設定ファイルが
正しければ)。あとで復活させたくなった時のために、

$ ls /etc/rc*.d/*ssh
/etc/rc1.d/K84ssh@  /etc/rc3.d/S16ssh@  /etc/rc5.d/S16ssh@
/etc/rc2.d/S16ssh@  /etc/rc4.d/S16ssh@

あたりを先に実行し、結果を保存しておくと良いでしょう(remove後に
もういちどls /etc/rc*.d/*sshすると何をしてるのか分かるかも;))。

一時的に接続テストをしたいのであれば、
$ sudo /etc/init.d/sshd stop
$ sudo /etc/init.d/xinetd restart
すればxinetdを使って走り出します。

なお、現在ではsshはsshd走りっぱなしにするもので、わざわざxinetd
経由で動作させるメリットはあまりありません。

Upstartは既存のinitへのほぼ完全な互換性が提供されていますので、
ユーザレベルで意識する必要はまったくありません。ぐぐったりすると
それなりに情報が出てきます。また、ニコニコ動画でUpstartで検索すれば
何か参考になるものが出てくるかもしれません;)

オフライン

 

#7 2008-09-03 19:08:10

ry
メンバ
登録日: 2008-07-30

Re: Ubuntu Linuxの起動順序

ubuntu / debian では基本的にランレベル2 しか使っていないようです
ですから /etc/rc[0-6].d は互換性のために全て揃っていますが、実際に使われるのは /etc/rc2.d だけだと思われます (済みません、未検証です)

また、 apt-get、aptitude、synaptic 等でパッケージをインストールした場合、自動起動すべきものは、その設定まできちんとされます
パッケージ個別の設定を弄る以外の修正は必要ないことがほとんどです

手動での起動/停止/再起動は sudo /etc/init.d/hogehoge start または stop、restart
システム起動時の自動起動の設定/解除は sudo update-rc.d ssh defaults または remove を使います

オフライン

 

#8 2008-09-04 08:57:30

kuronekox
メンバ
登録日: 2008-08-20

Re: Ubuntu Linuxの起動順序

皆様、ご指導ありがとうございます。

/etc/rc?.d 内のsshdでのシンボリックリンクの削除、及びサーバーreboot時に
sshdが自動起動せず、xinetd経由で動作するところまで確認しました。

webに掲載されている事例を見ると、sshdの起動スクリプトは
/etc/init.d/sshd
とかかれていることが多いようです(Ubuntuではなく、DebianやRedhat等別のディストリのようですが)
でも、Ubuntuですと、
/etc/init.d/ssh
ですよね。

この差は、Ubuntuというディストリビューションによるものなんでしょうか?

#ニコニコで検索しましたが、出て来ませんでした・・・
#森の妖精タグで検索ばかりしたから、なにかおかしくなったのだろうか・・・

オフライン

 

#9 2008-09-04 10:07:55

hito
管理者
登録日: 2007-03-18

Re: Ubuntu Linuxの起動順序

kuronekox による投稿:

webに掲載されている事例を見ると、sshdの起動スクリプトは
/etc/init.d/sshd
とかかれていることが多いようです(Ubuntuではなく、DebianやRedhat等別のディストリのようですが)

Red Hat系(というかDebian/Ubuntu以外)では/etc/init.d/sshdですね。
Debian/Ubuntuでは/etc/init.d/sshになっています。

#ニコニコで検索しましたが、出て来ませんでした・・・
#森の妖精タグで検索ばかりしたから、なにかおかしくなったのだろうか・・・

# あー。「カーネル読書会 Ubuntu」とかなら出てくるかも。

オフライン

 

#10 2008-09-04 14:13:53

kuronekox
メンバ
登録日: 2008-08-20

Re: Ubuntu Linuxの起動順序

ご教示いただいた内容、マニュアル等を元に、Ubuntu(Upstart?)の起動処理を書き出してみました。
変なところがあれば、御指摘頂ければ幸いです。

旧来のinit.dを使う起動プロセス
1.カーネル起動
2.デバイス初期化
3.inittab の記述に従い、ランレベルを引数として /etc/init.d/rc が実行される
4./etc/rc[?].d 内のリンクが次々キックされて
5.リンク先である /etc/init.d 内の起動スクリプトが走り、
6.各種サービスの起動、コマンドの実行が成される

Ubuntuが採用しているUpstartの起動プロセス
1.カーネル起動
2.デバイス初期化
3.Upstart デーモン(init)起動 (イベント startup が発行される)
4.startup イベントを受けて /etc/event.d/rcS が読み込まれる
5./etc/event.d/rcS から /etc/init.d/rc S が実行され
6./etc/rcS.d 内のリンクがキックされ/etc/init.d の起動スクリプトが走り、
 /etc/event.d/rcS が終了。(イベント stopped rcS に移行)
7.stopped rcS イベントを受けて、/etc/event.d/rc-default が読み込まれる
8. rc-defaultでは、特に何も変なことをしなければ Runlevelを2に設定する
9.Runlevel 2 のイベントに反応し、/etc/event.d/rc2 が読み込まれる
10./etc/event.d/rc2 から /etc/init.d/rc 2 が実行され、
11./etc/rc2.d のリンクがキックされて、/etc/init.d 内の起動スクリプトが動作し
12.Runlevel 2 相当での起動が完了する

ちなみにsshdは自動起動を解除したら、サーバの電源reboot直後だと
sshログインできませんでした・・・orz
(手動で一回でも /etc/init.d/ssh start --> stop すると、xinetd経由でssh接続できるのに・・・)
まだまだ先は長そうです・・・

hito による投稿:

# あー。「カーネル読書会 Ubuntu」とかなら出てくるかも。

# 度々ありがとうございます。また検索してみます。

オフライン

 

Board footer

Powered by FluxBB