
Ubuntu日本語フォーラム

ログインしていません。
表題の件について質問がございます。
Ubuntu9.04を使用させていただいております。
自分なりにこのフォーラム内やその他のサイトを拝見し、調べたつもりですが、まだいくつか疑問が残っているため
質問させていただきます。
最終的な目標とましては
1.電源投入後、自動でログイン
2.起動後はX-ServerおよびGDMを起動させない(GUIは必要ない)
3.自動で指定されたプログラムを実行
という流れを実現したく思います。
1.自動ログイン
目的
電源投入後、ログインユーザおよびパスワードを入力しなくても、Ubuntuが起動できるようにする。
調べた事
「システム」→「システム管理」→「ログイン画面」の「セキュリティ」タブで自動ログインするアカウントを設定可能。
実際に自動ログインできております。
疑問点
上記方法ですと、X-ServerおよびGDMを起動させない状態では設定ができないのではと思っております。
他のディストリビューションでは、自動ログイン用のスクリプトを記載(http://shino.pos.to/linux/autox.html)しており、できればUbuntuも同じようにスクリプトなどで設定ができないものかと思っております。
2.起動後はX-ServerおよびGDMを起動させない(GUIは必要ない)
目的
今回、プログラムの実行環境としてGUIは必要ありません。また電源投入後に自動でプログラムを開始させ、処理を開始するのでX-ServerやGDMを起動させずにUbuntuを起動させたく思います(プログラム開発はGUI環境で行っております)。
#最終的にはUbuntuのカーネルでプログラムが必要最低限のものだけ選んでビルドしなおすので、その前段階としてまずはGUIを削ることを想定しております。
調べた事
http://viva-ubuntu.com/?p=1259
のサイトそのままで大変恐縮ですが
/etc/event.d/rc-defaultを編集し、telinit 2と記載されているところを3−5のいずれかに設定する。仮に3とする。
Ubuntu9.04でデフォルトの設定ではランレベル2−5は同様の動きを行うため、ランレベル3の場合だけ、起動させるサービスを選定することで、X-serverやGDMを起動させないようにできる。
起動させるサービスの選定方法は、sysv-rc-confにてランレベルごとに起動させるサービスを設定する。
sysv-rc-confは
$ apt-get install sysv-rc-conf
で取得し
$ sudo sysv-rc-conf
で実行。
疑問点
sysv-rc-confからでしかできないのでしょうか?
3.自動で指定されたプログラムを実行
目的
今回の環境はPCが専用機になるため、電源投入後にプログラムをさせたく思います。
調べた事
「システム」→「設定」→「自動起動するアプリ」にて設定。
または/etc/rc.d/rc[0-6]に何かをするらしいのですがまだ具体的な方法がわかっておりません。
疑問点
「システム」→「設定」→「自動起動するアプリ」はX-serverやGDMが必要と思っているので、後者の方法をとりたく思うのですが、まだやり方がわかっておりません。別の方法でも問題ございませんので、何卒ご教授お願い致します。
長文で大変失礼しておりますがよろしくお願い致します。
オフライン
GUIが必要でないのならばserver版を利用すればいいでしょう。
http://www.ubuntu.com/server/get-ubuntu/download
コンソールで自動ログインはおすすめできません。
ログインしなくても自動でプログラムを実行する事は可能です。
もう少し具体的になにをしたいのか仰っていただければ、適切な回答がつくかもしれません。
オフライン
yamaさん、ご回答ありがとうございます。
説明不足で申し訳ございません。
現在、あるプログラムを作成しております。
最終的には、プログラムが必要なものだけの実装したカーネルをビルドして、そこで動作させる予定です。
またPCには運用時に、ディスプレイやマウスをつけません。
そのため電源投入後、自動でログインし、プログラムを起動させたく思っております。
プログラムを最終的な状態で動かす前に少しずつ段階を踏んでいって
1.GUIがある状態で、ログイン後にプログラムが自動で起動できることを確認
2.GUIがない状態で、ログイン後にプログラムが自動で起動できることを確認
3.GUIがない状態で、電源投入後自動でログインし、プログラムが自動で起動できることを確認
と1つずつ確認したいのです。
またserver版の機能を全て理解していない状態での発言で恐縮ですがserver版ほどの機能は不要かと思っております。
まだ説明不足で具体的な説明になっていないかもしれませんが、ご指摘ご教授などあればよろしくお願い致します。
オフライン
組み込みかなんかですかね。
server版はGUI関係のプログラムがごっそり入っていないので、逆にシンプルなのです。
CLIで自動ログイン&プログラム起動に関しては以下なんてどうでしょう。
CLI Autologin and autostart a program
http://www.euperia.com/stuff/?p=185
オフライン
yamaさん、ご回答ありがとうございます。
初めから組み込みと説明すればよかったですね。申し訳ございません。
ご推測のとおり組み込みです。
>server版はGUI関係のプログラムがごっそり入っていないので、逆にシンプルなのです。
ご意見ありがとうございます。一度server版はどうか?と相談してみます。
早速教えていただいたURLを拝見しましたが
/etc/init/tty1.confというファイルが存在しませんでした。
/etc/initというディレクトリから存在しておりません。
URLではUbuntu9.10ですが、私は9.04を使用しているのでその違いでしょうか?
私の勝手なイメージで恐縮ですがシェルスクリプトの作成や設定ファイルの編集で実装できるかと思っていたのですが
sysv-rc-confやmingettyなど様々なプログラムが必要そうですね。
オフライン
私なりに調べた結果ですがランレベルと/etc/inittabファイルの編集で実現できるのではないかと思っております。
問題は、私の環境Ubuntu9.04では/etc/inittabがない(#ls -l /etc/inittabの結果がls: /etc/inittabにアクセスできません: No such file or directoryとなる)ためそれに代わる方法を探さなければなりません。
以下の解釈はランレベル3で行うとしたときのものです。
1.電源投入後、自動でログイン
本来、パスワードなしでログインできることはセキュリティ上の問題があると思います。
/etc/passwdの最終行にfatcat:x:1000:1000:fatcat,,,:/home/fatcat:/bin/bash
という記載があるため、第2フィールドのxを空欄にして、ブランクパスワードにする。
これでパスワードなしでログイン可能という解釈をしておりますが
肝心の自動でログインする際のログインユーザはfatcatですよという指定方法がわかっておりません。
2.起動後はX-ServerおよびGDMを起動させない(GUIは必要ない)
sysv-rc-confを使用し、ランレベル3でのgdmの[X]を外す以外には方法がわかっておりません。
3.自動で指定されたプログラムを実行
他のディストリビューションには/etc/inittabに初期化時に起動させるデーモンなり初期化処理なりが記載されており
そのファイルの最終行に自動起動させたいプログラムを記載するとのことです。
pgm:3:once:/home/fatcat/fatprogram
上記のように記載するとログイン後に
ランレベル3のとき、/home/fatcat/fatprogramを一度だけ実行するという解釈をしております。
間違いのご指摘やご意見などございましたら何卒よろしくお願い致します。
オフライン
自動実行したいプログラムは一般ユーザ権限で起動する必要があるものでしょうか。
もしそうでなければ、daemonとして起動するように起動スクリプトを書くのはいかがでしょうか。
9.04なので、例えば
https://forums.ubuntulinux.jp/viewtopic.php?pid=37050#p37050
では「5秒に1回/sysへ書き込みを無限ループで続けるもの」を起動直後からroot権限で実行するように、起動スクリプトを書いています。
このような形でdaemon扱いにしてしまえば電源投入後gdmや端末、ssh等からのユーザのログイン有無にかかわらずそのプログラムは自動的に起動し動作します。
こうしてdaemonの作成、実行テストが完了したら別途gdmを止めれば良いかと思います。
オフライン
ackさん、ご回答ありがとうございます。
daemon扱いにする発想はなかったですね。
一度、daemon化を検討致します。
また指定したランレベル時のみdeamonを起動させる方法についても調査してみます。
ありがとうございます。
オフライン
fatcat による投稿:
/etc/passwdの最終行にfatcat:x:1000:1000:fatcat,,,:/home/fatcat:/bin/bash
という記載があるため、第2フィールドのxを空欄にして、ブランクパスワードにする。
これでパスワードなしでログイン可能という解釈をしておりますが
shadow passwd が採用されてからは、/etc/passwd を編集する方法ではできないと思います。
オフライン
Tako090929さん、ご回答ありがとうございます。
yamaさんもご掲示いただいたURLもそうですが
/etc/passwdなどを編集するのではなく
調べておりますとやはりmingettyを使用して--autologinでログインする方法が一般的のようです。
後半のコードの
vim ~/.bash_login
と
/usr/bin/ncmpc
がどういうことをしているのかまだ理解しておりませんが引き続き調査を進めてまいります。
オフライン
お騒がせしております。
皆様のおかげで、進捗があったので報告いたします。
1.電源投入後、自動でログイン
2.起動後はX-ServerおよびGDMを起動させない(GUIは必要ない)
については以下の方法を用いて実現しました。
1.電源投入後、自動でログイン
mingettyをインストールして、/etc/event.d/tty1を編集
/etc/event.d/tty1の編集内容
デフォルト
respawn
exec /sbin/getty 38400 tty1
編集後
# exec /sbin/getty 38400 tty1
exec /sbin/mingetty --autologin=fatcat tty1
参考URL
http://d.hatena.ne.jp/mooz/20090314/p1
http://www.euperia.com/stuff/?p=185
2.起動後はX-ServerおよびGDMを起動させない(GUIは必要ない)
起動時のランレベルを3にしてから、sysv-rc-confを使用しランレベル3でのgdmの[X]を外す。起動時のランレベル変更
参考URL
http://www.watanet.org/~chihiro/index.cgi/linux/ubuntu/20090624_ubuntu-where-set-initdefault.html
http://viva-ubuntu.com/?p=1259
オフライン
連絡が遅くなり申し訳ございません。
解決済みチェックのつけ方がわかりませんのでこの返信をもって
変えさせていただいておりますが
みなさまのおかげで解決済みとなりました。
ありがとうございます。
オフライン