systemd、Raspbian 8(jessie)を使用して起動時にnginxを起動しますか?

leeand00

起動時にnginxを起動しようとすると、次のエラーが発生しました Raspbian GNU/Linux 8 (jessie)

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
   Active: failed (Result: exit-code) since Sun 2016-08-07 10:38:50 EDT; 1min 10s ago
  Process: 478 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)

私の設定は正常に機能し、ログイン後にnginxを起動できます。しかし、systemdで起動することはできません。

これが私のユニットファイルです:

# Stop dance for nginx
# =======================
#
# ExecStop sends SIGSTOP (graceful stop) to the nginx process.
# If, after 5s (--retry QUIT/5) nginx is still running, systemd takes control
# and sends SIGTERM (fast shutdown) to the main process.
# After another 5s (TimeoutStopSec=5), and if nginx is alive, systemd sends
# SIGKILL to all the remaining processes in the process group (KillMode=mixed).
#
# nginx signals reference doc:
# http://nginx.org/en/docs/control.html
#
[Unit]
Description=A high performance web server and a reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid
TimeoutStopSec=5
KillMode=mixed

[Install]
WantedBy=multi-user.target

/lib/systemd/system/nginx.service

これを開始するには、どのターゲットが必要ですか?私はすでに試しましたnetwork-online.target(これが最も理にかなっており、同じ結果を受け取りました。

更新

この投稿のおかげでいくつか変更を加え、nginxを起動しました...それでもエラーで失敗します。

  1. 以下/etc/systemd/system/mult-user.target.wants/nginx.serviceを含むように変更されました:
    1. After=network-online.target
    2. Wants=network-online.target
      1. 以前は After=network.target
  2. 実行しましたsudo systemctl enable systemd-networkd-wait-online.service、それを起動します(をnetwork-online.target使用して有効にすることはできないためsudo systemctl enable network-online.target
  3. ラン sudo systemctl enable nginx
  4. 再起動しました...
  5. 再起動後、実行してファイル内systemd-analyze plot > something.svgを検索しましたnginx.serviceが、ファイルは存在していましたが、正常に起動せず、代わりにリバースプロキシサーバーに関するエラーが発生しました。解決方法がわかりませんが、それは別の質問のトピック。

以下は、systemd-analyzeプロットから取得した画像です。

systemd-出力を分析します。..

ただし...マシンを起動して実行するsudo systemctl start nginx問題なく起動します

エラーログからのエラーメッセージは次のとおりです。

2017/05/16 13:12:53 [emerg] 555#0: host not found in upstream "somehost.somedomain.lan" in /etc/nginx/sites-enabled/siteconf:41

問題の構成行は次のとおりです。

server {
     listen     80; ## listen for ipv4; this line is default and implied
    #listen   [::]:80 default_server ipv6only=on; ## listen for ipv6

    # Make site accessible from http://localhost/
    server_name somehost somehost.somedomain.lan;

    # Note: There should never be more than one root in a 
    #       virtual host
    #   Also there should never be a root in the location.
    #root /var/www/nginx/;

         location ^~ / {
            resolver 127.0.0.1 valid=300s; # NOTE: Added this to resolve it.
            access_log ./logs/RootWiki_access.log;
            error_log ./logs/RootWiki_error.log;
            proxy_buffers 16 4k;
            proxy_buffer_size 2k;
            proxy_set_header Host $host;
            proxy_set_header X-Real_IP $remote_addr;
            rewrite /(.*) /$1 break;
            proxy_pass http://wiki.leerdomain.lan:8080; # NOTE: This one causes the error according to the error log.
        }
leeand00

これが機能するようになりました:

# Stop dance for nginx
# =======================
#
# ExecStop sends SIGSTOP (graceful stop) to the nginx process.
# If, after 5s (--retry QUIT/5) nginx is still running, systemd takes control
# and sends SIGTERM (fast shutdown) to the main process.
# After another 5s (TimeoutStopSec=5), and if nginx is alive, systemd sends
# SIGKILL to all the remaining processes in the process group (KillMode=mixed).
#
# nginx signals reference doc:
# http://nginx.org/en/docs/control.html
#
[Unit]
Description=A high performance web server and a reverse proxy server
After=multi-user.target
Requires=network-online.target


[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid
TimeoutStopSec=5
KillMode=mixed

[Install]
WantedBy=multi-user.target

Unitセクションの下に私は以下を追加しました:

[Unit]
# ...
After=multi-user.target
Requires=network-online.target

/lib/systemd/system/nginx.service

また、bashで以下を実行しました。

$ sudo systemctl enable nginx

次に、シンボリックリンクが表示されることを確認します。

$ ls -la /etc/systemd/system/multi-user.target/wants
...
lrwxrwxrwx  1 root root   33 May 14  2016 nginx.service -> /lib/systemd/system/nginx.service
...

次に、デーモンをリロードします。

$ sudo systemctl daemon-reload

最後に再起動して、そこにあるかどうかを確認します。

$ sudo systemctl status --state active | grep nginx

Graph showing that nginx.service has been moved after the multi-user target

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

systemdで起動時にnginxを起動します

分類Dev

systemdで起動時にnginxを起動します

分類Dev

systemdを使用した起動時にChromiumを起動する

分類Dev

Raspbian JESSIEでPi3を起動すると、「Chromium」が自動的に起動します

分類Dev

起動時にsystemd-nspawn / systemdコンテナを起動します

分類Dev

Systemdは再起動時にNginxを起動できませんが、手動で動作します

分類Dev

systemdは起動時に起動しますが、停止します

分類Dev

systemdを使用した起動時のAutossh

分類Dev

systemd-起動時に起動しない問題を解決しました

分類Dev

'systemd'を使用して15.04で起動時にsudoスクリプトを実行します

分類Dev

systemdのRestart = on-abortは、サーバーの再起動時に自動起動を提供しますか?

分類Dev

systemdで起動時に起動するようにデーモンを設定します

分類Dev

systemdを使用した起動時にFlaskアプリを実行する

分類Dev

Raspberry pi:「screen」とSystemdを関連付けて、piの起動時にMinecraftサーバーを自動起動します

分類Dev

Raspbian PIXEL(LXDE)でqbittorrentを自動起動します

分類Dev

Postgresql12.3は起動時に起動しません、systemd

分類Dev

起動時に nfs をマウントできませんが、手動で動作します "Network is unreachable" w/systemd

分類Dev

起動時に起動した場合にのみ例外をバインドする[Raspbian]

分類Dev

systemdを使用して起動時にi2c-devモジュールをロードする方法

分類Dev

systemdを使用してLibreOfficeを起動する

分類Dev

systemdを使用してLibreOfficeを起動する

分類Dev

起動後にRaspberryPi(Raspbian)でjarを自動実行しますが、rc.localが機能しませんか?

分類Dev

conda環境内でsystemdを使用してエアフローを実行すると、起動に失敗します

分類Dev

systemdサービスを介して起動時にGithubリポジトリから最新の変更をプルします

分類Dev

起動時の最後のサービスとしてsystemdサービスをどのように作成しますか?

分類Dev

ターミナルを起動し、再起動後にsystemdからスクリプトを実行します

分類Dev

syslog-ngが起動し、手動で正常に実行されます... systemdを使用すると、起動しますがログは作成されません

分類Dev

pxelinuxを介してネットワークを起動すると、systemd-networkdの起動に失敗する

分類Dev

systemdサービスの起動時の実行を停止します

Related 関連記事

  1. 1

    systemdで起動時にnginxを起動します

  2. 2

    systemdで起動時にnginxを起動します

  3. 3

    systemdを使用した起動時にChromiumを起動する

  4. 4

    Raspbian JESSIEでPi3を起動すると、「Chromium」が自動的に起動します

  5. 5

    起動時にsystemd-nspawn / systemdコンテナを起動します

  6. 6

    Systemdは再起動時にNginxを起動できませんが、手動で動作します

  7. 7

    systemdは起動時に起動しますが、停止します

  8. 8

    systemdを使用した起動時のAutossh

  9. 9

    systemd-起動時に起動しない問題を解決しました

  10. 10

    'systemd'を使用して15.04で起動時にsudoスクリプトを実行します

  11. 11

    systemdのRestart = on-abortは、サーバーの再起動時に自動起動を提供しますか?

  12. 12

    systemdで起動時に起動するようにデーモンを設定します

  13. 13

    systemdを使用した起動時にFlaskアプリを実行する

  14. 14

    Raspberry pi:「screen」とSystemdを関連付けて、piの起動時にMinecraftサーバーを自動起動します

  15. 15

    Raspbian PIXEL(LXDE)でqbittorrentを自動起動します

  16. 16

    Postgresql12.3は起動時に起動しません、systemd

  17. 17

    起動時に nfs をマウントできませんが、手動で動作します "Network is unreachable" w/systemd

  18. 18

    起動時に起動した場合にのみ例外をバインドする[Raspbian]

  19. 19

    systemdを使用して起動時にi2c-devモジュールをロードする方法

  20. 20

    systemdを使用してLibreOfficeを起動する

  21. 21

    systemdを使用してLibreOfficeを起動する

  22. 22

    起動後にRaspberryPi(Raspbian)でjarを自動実行しますが、rc.localが機能しませんか?

  23. 23

    conda環境内でsystemdを使用してエアフローを実行すると、起動に失敗します

  24. 24

    systemdサービスを介して起動時にGithubリポジトリから最新の変更をプルします

  25. 25

    起動時の最後のサービスとしてsystemdサービスをどのように作成しますか?

  26. 26

    ターミナルを起動し、再起動後にsystemdからスクリプトを実行します

  27. 27

    syslog-ngが起動し、手動で正常に実行されます... systemdを使用すると、起動しますがログは作成されません

  28. 28

    pxelinuxを介してネットワークを起動すると、systemd-networkdの起動に失敗する

  29. 29

    systemdサービスの起動時の実行を停止します

ホットタグ

アーカイブ