タグ付けされた質問 「init」

initは、UNIXシステムのブートシーケンス中に生成される最初の実際のプロセス(PID 1)です。一部のシステムは、systemdやUpstart(Ubuntu)などの代替ソリューションに依存している場合があります。


1
switch_rootではなくいついつivot_rootを使用しますか?
nfsではなくcephを介してシステムをネットブートするために、Linuxの初期化プロセスをよりよく理解したいと思っています。 その過程で、ルートを切り替える2つの形式に遭遇しました。1つはswitch_rootと呼ばれ、もう1つはpivot_rootと呼ばれます。これらのスクリプトは、pxeブートプロセスを使用してtftpで取得したメモリ内ファイルシステム(initramfs)から実行されます。 どちらを使用するかはいつですか?ルートに配置されたいくつかの初期化スクリプトで両方が使用されているのを見ました。


2
root以外のユーザーとしてsystemdサービスを実行しています!
次のサービス、amos.serviceを作成し、それをamos(amosグループのメンバー)として実行する必要があります [Unit] Description=AMOS Service After=network.target [Service] User=amos Group=amos Type=simple WorkingDirectory=/usr/share/amos ExecStart=/usr/share/amos/amos_service.sh start ExecStop=/usr/share/amos/amos_service.sh stop Restart=on-failure [Install] WantedBy=multi-user.target すべての許可がに設定され/usr/share/amosていますamos:amos amos_service.shは次のとおりです。 #!/bin/bash CUDIR=$(dirname "$0") cd /usr/share/amos start() { exec /usr/share/amos/run_amos.sh >> /var/log/amos.log 2>&1 } stop() { exec pkill java } case $1 in start|stop) "$1" ;; esac cd "$CURDIR" ディレクトリに変更を加えずにサービスを最初に実行すると、つまり、rootに属し、Users not Groupパラメータを持たないamos.serviceがすべて実行されます。 …
18 systemd  services  init 

3
カーネルがinitを実行できないのはなぜですか?
このページで Raspbianイメージをダウンロードしました。qemu内でイメージを起動するために使用できるカーネルをコンパイルしようとしています。 kernel.orgからLinuxカーネルソースをダウンロードして実行しました。 make versatile_defconfig make menuconfig 次に、カーネルに次の機能を追加しました。 PCIサポート(CONFIG_PCI) SCSIデバイスのサポート(CONFIG_SCSI) SCSIディスクのサポート(CONFIG_BLK_DEV_SD) SYM53C8XXバージョン2 SCSIサポート(CONFIG_SCSI_SYM53C8XX_2) 拡張3(ext3)ファイルシステム(CONFIG_EXT3_FS) 拡張4(ext4)ファイルシステム(CONFIG_EXT4_FS) また、ディスクイメージをループマウントし、以下を実行しました。 コメントアウト /etc/ld.so.preload /etc/fstab使用するために調整し/dev/sda1、/dev/sda2 次に、イメージをアンマウントし、次を使用してマシンを起動しようとしました。 qemu-system-arm \ -M versatilepb \ -m 256 \ -kernel linux-4.3/arch/arm/boot/zImage \ -hda 2015-09-24-raspbian-jessie.img \ -serial stdio \ -append "root=/dev/sda2 rootfstype=ext4 rw console=ttyAMA0" カーネルはファイルシステムをマウントできましたが、すぐに問題が発生しました: Kernel panic - not syncing: Attempted to …
14 linux-kernel  arm  qemu  init 

2
initプロセスはLinuxのシェルスクリプトにできますか?
私はそれが記載されているカスタムinitramfsのセットアップに関するチュートリアルを行っていました: 欠落しているのは/ initのみで、initramfsのルートにある実行可能ファイルは、カーネルがロードされるとカーネルによって実行されます。sys-apps / busyboxには完全に機能するシェルが含まれているため、/ initバイナリを単純なシェルスクリプトとして記述することができます(アセンブラーまたはCで記述された複雑なアプリケーションをコンパイルする必要はありません)。 で始まるシェルスクリプトとしてinitの例を示します #!/bin/busybox sh これまでのところ、initは起動されるメインプロセスであり、他のすべてのユーザー空間プロセスは最終的にinitの子であるという印象を受けていました。ただし、指定された例では、最初のプロセスは、実際にbin/busybox/ shは後でinitが生成されます。 これは正しい解釈ですか?たとえば、その時点で使用可能なインタープリターがあれば、Pythonスクリプトなどとしてinitを書くことができますか?

2
システムを再起動せずにinitを再起動する
では、この質問、受け入れの回答のように述べています たとえば、/ sbin / initはglibc [脆弱なライブラリ]を使用し、再起動せずに再起動するのは簡単ではありません。 今、非自明は不可能なためにエンジニアっぽいですが、私はまだ興味があります: システム全体を再起動せずにinitを再起動することは可能ですか?
13 init 

2
Debianで/etc/init.dスクリプトがどの順序でロードされるかを調べる方法は?
あるsysvinitスクリプトを別のスクリプトよりも先に実行して、その方法を見つけ出したいと思います。 確認するために、これは実際に私の好きな順序で行われます。リストが表示されます。 私はsudo insserv --showallすでに見つけましたが、initスクリプトを複数回リストするので、頭や尻尾を作ることはできません。 Debianで/etc/init.dスクリプトがどの順序でロードされるかを調べる方法は?

4
init = / path / to / programをカーネルに渡すと、プログラムがinitとして起動しないのはなぜですか?
Linuxシステムでinitスクリプトをデバッグしようとしています。initシーケンスを手動で実行できるようにinit=/bin/sh、カーネルに渡して起動shせずに起動しようとしていますinit。 私が見つけたのは、initとにかくカーネルが起動しているということです。起動中、printkメッセージの1つはコマンドラインであり、それはラインが適切に設定されていることを示しています。さらに、カーネルコマンドラインを使用して他のことに影響を与えることができます。パスが存在することを確認しました。します。 これはbusyboxシステムであり、initはbusyboxへのシンボリックリンクです。そのため、PIDが1の場合にbusyboxが奇妙な魔法を起こさないようにするために、busybox以外のプログラムをinitとして実行してみました。それもうまくいきませんでした。何をしても、initが実行されるようです。 この動作の原因は何ですか?
13 linux  init 


1
カーネルとBusyBoxを備えた最小限のLinux:/ etc / inittabは無視され、/ initのみが実行されます
カーネル(デフォルトオプションでコンパイルされた)とBusyBox(デフォルトオプション+静的でコンパイルされた、すべてのアプレットが存在することを含む/sbin/init)のみを含む、小さくて機能的なライブLinux CDを作成することができました。私が作成する全く問題なかったinitrdと移入を/dev、/procと/sysも私は私と全く問題がなかった/initシェルスクリプト。 最近、BusyBoxが/etc/inittab構成を(少なくともある程度)サポートしていることを読んだので、次のいずれかを実行したいと思います。 私の/initシェルスクリプトを忘れて、完全に/etc/inittab構成に依存します。 /initシェルスクリプトと/etc/inittab設定の両方を使用します。 今実際の問題- /etc/inittab私のディストリビューションが起動するときそれは完全に無視されているようです。症状は次のとおりです。 削除して/initそのままにしておく/etc/inittabと、カーネルパニックが発生します。私の想定では、カーネルはまったく実行さ/sbin/initれないか、または/sbin/init検出(または読み取り)されません/etc/inittab。 BusyBoxがなくても正常に動作することを確認しました/etc/inittab。だから、私は両方を削除/initして/etc/inittab、何を推測-再びパニックカーネル。 私が実行しようとした/sbin/init私のシェルから、付属のいくつかの推測の後exec /sbin/init、setsid /sbin/initそしてexec setsid /sbin/init私は、カーネルパニックになってしまいました。ファイルシステムに/ etc / inittabが存在する場合と存在しない場合の両方。 これが私の/initシェルスクリプトの内容です: #!/bin/sh dmesg -n 1 mount -t devtmpfs none /dev mount -t proc none /proc mount -t sysfs none /sys setsid cttyhack /bin/sh この時点では/etc/inittab、構成が実際に機能していることを知る方法がある限り、その内容がどうなるかは気にしません。ここで/etc/inittab見つけた情報に基づいて、いくつかの構成を試しました。 最低限、私の/ etc / inittabには次の1行だけが含まれています。 ::sysinit:/bin/sh 繰り返しますが、カーネルパニックに陥り、/etc/inittab無視されたようです。 私の小さなライブディストリビューションをBusyBoxで正常に動作させる方法についての提案/etc/inittabは高く評価されています! 更新: 明確にするために、現在のシェルスクリプトを使用してもしなくても、カーネルパニックの問題は発生しません。それはすべて正常に機能し、コンソールは非常に機能し、予期しない問題は発生しません。上で説明したように、唯一の問題は完全に無視されることです。/init/etc/inittab/bin/ash/etc/inittab …

4
systemdは「悪意のある」ものですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 DebianとXubuntuについて議論しているオンラインフォーラムにアクセスして、署名欄にこの行を追加するユーザーを見ました: ... systemdなしで... この行は誇りを持って示されています(私には思えます)。 ウィキペディアから: systemdは、Linuxコンピューターのオペレーティングシステム用の中央管理および構成プラットフォームとして設計された、システム管理デーモン、ライブラリ、およびユーティリティのスイートです。 だからsystemd悪いことのように思えないのに、なぜ人々はそれを使わないという誇りを持って書くのですか? することができますsystemdあなたのために危険な、または単に悪いですか?
11 systemd  init 

1
rhel / centos-6 initスクリプトでデーモンを起動する標準的な方法は何ですか?
ubuntuのstart-stop-daemonに関する優れたドキュメントがたくさん見つかりましたdaemon。バイナリのmanページがあります。 しかし、rhel / centosスクリプトでデーモンを開始する正規の方法から、ソース/etc/init.d/functionsを指定してdaemon()関数を使用することができます。しかし、良い例やドキュメントは見つかりません。 rhel / centos-6 initスクリプトでデーモンを起動する標準的な方法は何ですか? 私の最初の試みは: #!/bin/bash source /etc/init.d/functions daemon --user USER nohup /path/to/your/binary arg1 arg2 >/dev/null 2>&1 &



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.