• 締切
  • すぐに回答を!

Linuxで自動ログインできますか?

  • 質問No.394126
  • 閲覧数441
  • ありがとう数11
  • 回答数9

お礼率 32% (51/155)

RedHat7.2を使用しています。
起動時にAユーザーでログインし、コマンドを実行することを自動でやりたいのですが可能でしょうか?

ログインするのが無理であれば、Aユーザーの権限でコマンドを実行するだけでも構いません。

ご存知の方がおられましたらご教授ください。

回答 (全9件)

  • 回答No.9

ベストアンサー率 63% (1021/1612)

xjdさんが/tmp/pg1、/tmp/pg2というプログラム(C言語)を作って、
/etc/init.d/xjd -> /etc/rc3.d/S99xjd
という起動シェルを作って試してみましたが、問題なく動きます。

/etc/init.d/xjdの中身

#!/bin/sh
su - xjd -s /bin/sh -c "/tmp/pg1;/tmp/pg2" &

>また、"/usr/bin/pg_ctl_1"となっているところに直接コマンドを書くことはできるのでしょうか?

書けます。Linuxのコマンドもあなたが作ったプログラムも同じように書けます。

どんなプログラムを動かそうとしてるのですか?
起動シェルの内容は?
シェルやプログラムのオーナ・権限は?
  • 回答No.8

ベストアンサー率 63% (1021/1612)

xjdさんが/tmp/pg1、/tmp/pg2というプログラム(C言語)を作って、
/etc/init.d/xjd -> /etc/rc3.d/S99xjd
という起動シェルを作って試してみましたが、問題なく動きます。

/etc/init.d/xjdの中身

#!/bin/sh
su - xjd -s /bin/sh -c "/tmp/pg1;/tmp/pg2" &

>また、"/usr/bin/pg_ctl_1"となっているところに直接コマンドを書くことはできるのでしょうか?
書けます。Linuxのコマンドもあなたが作ったプログラム同じように書けます。
  • 回答No.7

ベストアンサー率 63% (1021/1612)

または、

-c "/usr/bin/pg_ctl_1;/usr/bin/pg_ctl_2" &

と書くと、pg_ctl_1の終了を待ってからpg_ctl_2が動きます。
キーボードから実行するの同じです。

(#6の場合はpg_ctl_1とpg_ctl_2が同時に動くわけです。)
補足コメント
Mifutsuta

お礼率 32% (51/155)

一つ目のコマンドは実行できましたが、二つ目がうまく動きません。
また、"/usr/bin/pg_ctl_1"となっているところに直接コマンドを書くことはできるのでしょうか?
なんども質問してすみませんがよろしくお願い致します。
投稿日時:2002/11/06 13:06
  • 回答No.6

ベストアンサー率 63% (1021/1612)

>suコマンドもだいぶ理解できました。しかし最後の"-c"のところでコマンドを2つ実行したいのですが、その方法はありますでしょうか?

後ろに&をつけて2行書くだけです。簡単でしょ。

su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl_1" &
su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl_2" &
  • 回答No.5

ベストアンサー率 63% (1021/1612)

(補足)
いままで説明しませんでしたが、
/etc/rc.d/rc.local
というファイルがあります。
これはMS-DOSでいうところのautoexec.batにあたります。(OS起動時に必ず実行される)
ランレベルとかシンボリックリンクとかめんどくさければ、このファイルに記述すればよいです。
  • 回答No.4

ベストアンサー率 63% (1021/1612)

>S99myboot
これはOKです。(ただし所有者と権限を確認のこと)
99は起動する順番です。とりあえず後ろの方で動かすと無難です。

>/etc/rc3.dにしか作成して
これもOKです。

>#!/bin/sh
>su ユーザー名
>実行したいコマンド
これはまずいです。suの行で実行が止まってしまいます。
#1でpostgresqlの起動シェルを参考にして、といいましたが、こんな風になっています。

su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl"

suコマンドの引数の意味を調べてみてください。
もうすこしですね。
補足コメント
Mifutsuta

お礼率 32% (51/155)

suコマンドもだいぶ理解できました。しかし最後の"-c"のところでコマンドを2つ実行したいのですが、その方法はありますでしょうか?
実行ファイルを作って、それを起動させる方法が良いのでしょうか?あと一歩でできそうです!よろしくお願い致します。
投稿日時:2002/11/05 17:48
  • 回答No.3

ベストアンサー率 100% (1/1)

/etc/rc3.dと/etc/rc5.d に作成したシンボリックリンク名は何になっていますか?
補足コメント
Mifutsuta

お礼率 32% (51/155)

はじめの3桁の意味がわからなかったので

S99myboot

としました。
現在はテキストモードでしか使用してないので、/tc/rc3.dにしか作成していません。

よろしくお願い致します。
投稿日時:2002/11/01 17:30
  • 回答No.2

ベストアンサー率 63% (1021/1612)

/etc/init.dにおいただけではだめなんです。

/etc/init.dに置いたシェルスクリプトのシンボリックリンク(Windowsのショートカットみたいなもの)を/etc/rc3.dとか/etc/rc5.dなどに作成することになっています。

rc3とかrc5の数字はOSのランレベルを意味します。

あなたのLinuxのランレベルが何かは/etc/inittabに記述されています。

linux ランレベル のキーワードで検索してみてください。

一度に説明すると大変なので一つずつ理解していきましょう。
補足コメント
Mifutsuta

お礼率 32% (51/155)

度々のご教授ありがとうございます。
シンボリックリンクを作成し、起動時にそのシェルが動こうとしています。
今回、"myboot"というリンクを作成し、起動時に"Starting myboot:"とコンソールに表示されるようになりました。が、そこで止まってしまってるんです・・・
シェルの内容が悪いんだと思うのです。
その内容は、

#!/bin/sh
su ユーザー名
実行したいコマンド

というような単純なものを書いてみたのですが、これではダメでしょうか?
投稿日時:2002/11/01 14:42
  • 回答No.1

ベストアンサー率 63% (1021/1612)

/etc/init.d配下のシェルを参考にしてみてはいかがでしょう。
たとえばpostgresはpostgresユーザの権限で起動時に動きます。
補足コメント
Mifutsuta

お礼率 32% (51/155)

ご返答ありがとうございます。

シェルを作成して、/etc/init.d配下に置いてみたのですがうまくいきません。

シェルの内容を申し越し詳しく教えていただけないでしょうか?
素人なので申し訳ありませんがよろしくお願いします。
投稿日時:2002/11/01 13:21
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ページ先頭へ