質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

1回答

6470閲覧

LinuxをGUIなしで起動するには

退会済みユーザー

退会済みユーザー

総合スコア0

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

1クリップ

投稿2015/05/23 15:57

Linuxに関しては初心者レベルです。

BeagleBone BlackというボードにLinux(debian)が入っていて環境を構築しているところなのですが、デフォルトでは起動と同時にGUIデスクトップ(LXDE?)が起動してしまいます。
これをコンソールのログインプロンプトのところで止めたいのですが、どうするのが正しいやり方ですか?

カーネル起動後はsystemdに制御が移行していることを知り、defatult.targetユニットの設定で起動していると知りました。
実機で調べてみると、default.targetはgraphical.targetにln -sされていたので、これをmulti-user.targetに変えればいいのだろうと思って、
/etc/systemd/system/にdefault.target-->multi-user.targetとなるようなシンボリックリンクを張ってみたのですが、
リブートするとやはりGUIで起動してしまいます。

また、起動後にsystemctl list-unit-files --type=targetでユニットの状態を調べてみると、
graphical.targetもmulti-user.targetもdisableとなっていて、enableになっているのはremote-fs.targetだけでした。
どうもdefault.targetの設定は機能していないようなのですが、どういう理由が考えられますか?また、誰がremote-fs.targetを起動しているのでしょうか?

PID=1はsystemdになっているので、initではなくsystemdで起動していることは間違いなさそうです。
また、debianはwheezyのようです。カーネルは3.8系でした。

その後の調査で、カーネルの起動パラメータ(bootargs)に"text"を付け加えるとGUIにならずに、目的のコンソールログインで止まってくれることが分かりました。
しかし、このtextパラメータがどういう意味で作用を持つのか、そしてsystemdでの起動レベル(target)との関連性がよくわからないので、そのあたりもご教示いただけるとありがたいです。

よろしくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

どのターゲットで起動するかは以下のコマンドで調べることができます。

lang

1# systemctl get-default 2graphical.target

/etc/systemd/system/default.target が存在しない場合、/usr/lib/systemd/system/default.target (graphical.target へのシンボリックリンク)を見るのだと思います。

起動するターゲットを変更するには、手動で /etc/systemd/system/default.target にシンボリックリンクを作成してもいいですが、コマンドでもできます。

lang

1# systemctl set-default multi-user.target 2ln -s '/usr/lib/systemd/system/multi-user.target' '/etc/systemd/system/default.target'

この設定をしても graphical.target で起動するということですが、リンク先の multi-user.target は /usr/lib/systemd/system/multi-user.target になっていますでしょうか。

起動パラメータの "text" は知らないのですが、"systemd.unit=multi-user.target" や "3" (以前の runlevel 指定)を設定することで、起動するターゲットを変更することができます。

投稿2015/05/23 18:02

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/05/25 09:56

アドバイス、ありがとうございます。 実は、systemctlでget-default / set-defaultが使えないのです。systemctl get-default[ENTER]すると、Unknown operation get-defaultと出ます。manページ見ても、確かにget-defaultはありません。 systemctl --version[ENTER]とすると、systemd 44と出ます。x86上のUbuntuではsystemd 217と出るので、かなり古いようです。apt-getしても、既に最新パッケージが入っているようなので、とりあえずget_defaultの使用は断念しています。 > この設定をしても graphical.target で起動するということですが、リンク先の multi-user.target は /usr/lib/systemd/system/multi-user.target になっていますでしょうか。 なっていますが、少しパスが違います。ネットの情報では、/usr/lib/systemd/system/にシステム定義のunitが格納されているようですが、debianでは/lib/systemd/system/にあります。ちなみにUbuntuでも後者のパスの方にunit定義があります。 また、get-defaultが使えないので"graphical.target で起動"しているかどうかは定かではないと考えています。いま言えることは、 - デスクトップGUIが起動してしまう - systemctl list-unit-filesで見るとgraphical.targetはdisabled。でもGUI起動 - /etc/systemd/system/default.target-->/lib/systemd/system/multi-user.targetにシンボリックリンクしてもmulti-user.targetはenabledにならず、GUI起動 など訳の分からない状態です。そもそもdefault.targetが機能しているのかどうかわからない状態です。 デフォルトで設定されているdefault.targetは、 > root@beaglebone:/lib/systemd/system# ls -la default.target > lrwxrwxrwx 1 root root 16 Oct 9 2013 default.target -> graphical.target となっていて、graphical.targetの中身は、 > [Unit] > Description=Graphical Interface > Requires=multi-user.target > After=multi-user.target > Conflicts=rescue.target > AllowIsolate=yes > > [Install] > Alias=default.target こんな感じでした。Unitの書き方はまだまだ完全に理解できていないのですが、これを見る限りではgraphical.targetに固有の起動条件・設定はなくて、ほとんどmulti-user.targetと同じなのでは?(=multi-user.targetにしてもGUI起動<-->CUI起動は変わらないのでは?)と思うのですが・・・ 今日、ネットを調べまくったところでは、 - debian Wheezyでは、完全にsystemdには移行しておらず、一部initスクリプトで起動している部分がある という情報があり、カーネルパラメータにtextを追加するのがひとつの対応方法であるらしいということです。 他に実験で分かったことは、カーネルパラメータにtextを追加しなくても、systemctl disable lightdm.serviceでディスプレイマネージャを切ればCUIで起動してくれることが分かりました。ただし、lightdm.serviceファイル自体はどこにも存在せず悩みましたが、/etc/init.d/lightdmスクリプトのLSBヘッダから自動生成されたserviceユニットであることは判明しました。 しかし、systemdがどのような起動ツリーをたどった結果lightdmスクリプトにたどり着くのかは不明なままです。この点について、どこを確認すればよいかをご教示いただけるとありがたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問