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

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

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

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

3120閲覧

systemctlコマンドが使えない。

yuki_90453

総合スコア326

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2018/11/02 04:22

###概要
dockerにてsystemctl daemon-reloadを行ったのですが下記ように表示されます。

Failed to connect to bus: No such file or directory

###試した事
下記のサイトにて同じ症状で回答がついていますがイマイチ理解出来ません。

I assume you start your docker container with something like

docker run -t -i ubuntu:16.04 /bin/bash
The problem now is that your init process PID 1 is /bin/bash, not systemd. Confirm with ps aux.

In addition to that you are missing dbus with would be the way to > communicate. This is where your error message is coming from. But as your > PID 1 is not systemd, it will not help to install dbus.

Best would be to re-think the way you plan to use docker. Do not rely on systemd as a process manager but have the docker container run your desired application in the foreground.

systemctl failed to connect to bus - docker ubuntu:16.04 container

dockerの起動方法についてたしかに/bin/bashで起動させています。
ポートの空きがないので諦めて違うコマンドで代用しろとの内容なのでしょうか。

###質問
systemctlをが必要な際はserviceコマンドで代用していたのですが、daemon-reloadの場合何か代用のコマンドはございますでしょうか?

よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

直接の回答になりそうにないですが……、

おそらくNginxのデーモン起動で転んでいそうな気がします。
そこで、直接 /etc/init.d/ の中のNginx起動のスクリプトを叩いてみてはいかがでしょうか?

以下、古い記事ですが、
デーモンの起動・終了にはserviceコマンドを利用しよう - インフラエンジニアway - Powered by HEARTBEATS

また、この質問の回答も参考になりそうです。
Ubuntu - Ubuntu 14.04 で、systemdのサービスを制御する方法について|teratail

なお、この手法はあくまで検証のためです。
本来なら service コマンドや initctl で、起動時に実行するサービスの管理をしたほうが良いと思います。

投稿2018/11/02 07:22

manzyun

総合スコア2244

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

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

yuki_90453

2018/11/02 12:26

回答頂きありがとうございます。 >そこで、直接 /etc/init.d/ の中のNginx起動のスクリプトを叩いてみてはいかがでしょうか? root@hoge:/var/www/html# /etc/init.d/varnish restart * Stopping HTTP accelerator varnishd No /usr/sbin/varnishd found running; none killed. [fail] * Starting HTTP accelerator varnishd [fail] Error: Could not get socket :6081: Address already in use (-? gives usage) 上記のように表示されます。 6081ポートが使用済みとなっておりますが、Varnishの設定ファイルで他のポートを設定をしておりそれを反映させる為、systemcliのコマンドを利用する必要がありました。 sudo systemctl daemon-reload varnish 同じような症例を調べるとdockerではこういったsystemcliのコマンドを使用出来ないという回答を見かけます。理由については正直よく理解出来ていません。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問