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

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

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

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

cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

nginx

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

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

3回答

1245閲覧

crontabでnginxを止める事が出来ない

domidomi

総合スコア34

CentOS

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

cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

nginx

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

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2018/04/20 03:06

##やりたいこと

nginxcrontabを使って停止したい

##やったコマンド

crontabにこれらを設定し試してみましたがnginxは止まりませんでした(時間は適当)
全てvar/log/cronにて動いている事は確認しています。

00 12 20 * * nginx -s stop
00 12 20 * * nginx stop
00 12 20 * * /bin/bash -l nginx -s stop
00 12 20 * * /bin/bash -l nginx stop

普通の状態で打つと停止することができるのでなぜcronだと出来ないのか分かりません。技術レベルの低い質問で申し訳ありませんがお時間おありの方がいらっしゃいましたら、よろしくお願いいたします。

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

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

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

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

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

yoorwm

2018/04/20 03:15

ログインした時に「You have new mail」とか出てたら、エラーがメールで来ているかもしれません
guest

回答3

0

ベストアンサー

crontabは、基本的に環境変数を読み込みません。
絶対パスで書くか、Crontab内でPATH指定してください。

こんな感じでしょうか。

SHELL=/bin/bash PATH=/sbin:/bin:/usr/bin 00 12 20 * * /etc/init.d/nginx stop

投稿2018/04/20 04:34

lazhuward

総合スコア1294

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

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

domidomi

2018/04/20 05:48

ありがとうございますフルパスにしたら無事止める事が出来ました。 しかし疑問に残りました。「/bin/bash -l」を付ける事で環境変数が普段使いと同じ状態となっているかと思っていたのですが「/bin/bash -l nginx -s stop」はなぜ出来ないのでしょう?
lazhuward

2018/04/20 07:08 編集

質問者さんの環境がわからないので憶測で書きますが、bashのシェルならそれで動きますが、 「nginx -s stop」を叩いたときは 「/usr/sbin/nginx」とかにあるバイナリの方を見てないでしょうか? 「nginx -s stop」の「nginx」は「/usr/sbin/nginx」というバイナリ実行ファイル(exe) ですので、bashでは実行できませんので、環境変数が引き継がれません。
guest

0

権限の問題ならsudoとからめてやってみて下さい

投稿2018/04/20 03:31

yambejp

総合スコア114784

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

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

0

nginx にパスが通っていないとかじゃないですかね?
フルパスで記述するとイケる気がします。

投稿2018/04/20 03:23

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問