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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Q&A

解決済

2回答

1851閲覧

CentOS7 起動時に実行させたいコマンドが動かない

Web_akira

総合スコア34

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

0グッド

0クリップ

投稿2019/02/22 07:30

CentOS は バージョン7 からは、rc.local に実行権限を付与しないと動かないということで、
root で下記のように編集後、権限を付与しました。

vi /etc/rc.d/rc.local chmod u+x /etc/rc.d/rc.local

追加したのは下記の内容です。

cd /home/web vagrant up

気になっているのは、rc.local は、
1行目がコメントアウトされているようなのですが…
これはコメントインすればいいだけの話でしょうか?
それとも上記のコマンドには sudo が必要でしょうか。

#!/bin/bash

あと念のためですが、起動時、再起動時、どちらも実行される設定ということで認識は合っていますでしょうか?
社内インフラを任されたのは初めてなので苦心しております。
よろしくお願い致します。

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

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

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

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

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

scsi

2019/02/22 11:12

実際に再起動して想定通り動かなかったのならエラーログなどを書いて貰えますか
guest

回答2

0

自己解決

独自サービスとして、登録することで解決できました。

[install] -> [Install] の誤字を修正したところ、enable になりました。

投稿2019/02/25 07:08

Web_akira

総合スコア34

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

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

0

1行目がコメントアウトされているようなのですが…

これは、shbang行(シェバン、シェバング)というもので、このファイルをどのプログラムが実行するのかを示しますので、原則として、消しては駄目です。shスクリプトなら、#!/bin/shだし、bashスクリプトなら#!/bin/bashです。

それとも上記のコマンドには sudo が必要でしょうか。

また、rc.localはroot権限で実行されます。root権限でなく一般ユーザー権限で動かす必要があるなら、sudo -u ユーザ名をコマンドの前に付ける必要があります。sudo使うと、PATH等が通常と異なる値なので、注意が必要です。

本題ですが、端末から、rootユーザーで、

sh

1cd /home/web 2vagrant up

で動くのなら、vagrantのパスの問題ではないかと思います。

sh

1PATH=~~~~~~ 2cd /home/web 3vagrant up

にするのでしょうか。

投稿2019/02/22 16:44

otn

総合スコア84423

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

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

Web_akira

2019/02/25 03:13

> otn 様 詳しいご解説、ありがとうございます。 shbang についても知っていたはずなのにコメントアウトと勘違いしてお恥ずかしいです。 試しに cd で移動した後、touch コマンドでファイルを作成する処理を書きましたら動きました。 ご指摘のとおり、vagrant コマンドがうまく動作しないようです。 ただ、vagrant -v とした時、バージョン情報が表示されるのでパスは通っていると思っていたのですが、 シェル内で実行するときは、PATH を通す必要があるということでしょうか。 引き続き、こちらでも確認してみます。
Web_akira

2019/02/25 04:57

/etc/rc.d/rc.local start で動作確認したところ、vagrant は立ち上がりました。 /usr/bin/vagrant up vagrant up rc.local には、上記、 どちらのコマンドを書いても立ち上がります。
Web_akira

2019/02/25 06:47

/etc/rc.d/rc.local が CentOS7 では推奨されていないので、 サービスとして登録してみました。 # vagrantPhp53.service ↓ [Unit] Description=vagrant php5.3 up After=network.target [Service] User=root Group=root Type=forking WorkingDirectory=/root ExecStart=/root/startup.sh Restart=always [install] WantedBy=multi-user.target サービスの起動は systemctl start vagrantPhp53.service でうまくいきました。 が、常駐化ができません。 systemctl list-unit-files --type=service で確認すると static になっています。 static は、調べると「単体で自動起動ができないサービス」と出てきますが、 単体で起動できるようにすればどうすればいいのか、今はこの点で調べ直しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問