gpt4 book ai didi

nginx - 如何使NGINX从cron作业重新启动/重新加载?

转载 作者:行者123 更新时间:2023-12-03 15:30:27 24 4
gpt4 key购买 nike

我正在尝试通过通过cron作业调用的脚本重新启动NGINX服务(当由root用户在命令行中运行时,它可以工作)-我不确定这是否相关,但还会创建所涉及的cron作业通过脚本。我已经尝试了多个命令,但是我正在使用的当前命令如下:

sudo/etc/init.d/nginx重新启动

任何帮助都会很棒!

更新

以下是cron运行并尝试重新加载nginx服务的脚本

#!/bin/bash

NGINX_CONFIG='/etc/nginx/sites-available'
NGINX_SITES_ENABLED='/etc/nginx/sites-enabled'
WEB_DIR='/var/www/vhosts/demos'

EMAIL=$1
DOMAIN=$2
SITE_DIR=$3

echo $DOMAIN
echo $SITE_DIR

# Remove the nginx configurtations
rm -Rf $NGINX_CONFIG/$DOMAIN.conf
rm -Rf $NGINX_SITES_ENABLED/$DOMAIN.conf

# Remove the access log
rm -Rf /var/log/nginx/$SITE_DIR.access.log

# Remove unicorn socket log
rm -Rf /tmp/unicorn.$SITE_DIR.sock

# Remove the DB
sudo psql -U postgres -c "SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = '_$SITE_DIR' AND pid <> pg_backend_pid();"
dropdb -U postgres $SITE_DIR

# Remove the sites application from the server
rm -Rf $WEB_DIR/$SITE_DIR/

if [[ ! "$(/sbin/service nginx status)" =~ "start/running" ]]
then
/etc/init.d/nginx reload
fi

最佳答案

您需要像root用户一样执行cron作业,因此,添加新的cron作业,使用su以root用户身份登录,然后运行crontab -e并将其添加,0 * * * * /etc/init.d/nginx reload或编辑您的

/etc/crontab
与您的root用户并添加cron 0 * * * * root /etc/init.d/nginx reload(根据需要调整时间表;以上内容将每小时每小时运行一次)
你不能用sudo运行cron(我认为)。您需要以root用户身份登录或以root用户身份编辑crontab并添加命令。
更新**************+++
你为什么不只跑
/etc/init.d/nginx reload
代替:
if [[ ! "$(/sbin/service nginx status)" =~ "start/running" ]]
then
/etc/init.d/nginx reload
fi
或者,更好的方法是:
/etc/init.d/nginx status > /dev/null 
status="$?"
if [ $status -eq "0" ]; then
/etc/init.d/nginx reload
fi
如果停止了nginx重启它或类似的操作,您可以在其中添加其他内容... forme工作正常,我在我的lite监视脚本 http://kb.skamasle.com/2013/monitorear-servicios-ftp-mysql-apache-etc-y-levantar-si-esta-caido/上使用了它

无论如何,我们也可以使用以下代码:
* * * * * /usr/bin/pgrep nginx > /dev/null || /etc/init.d/nginx restart >> /var/log/messages
一个内衬cron而不是只检查nginx pid是否存在(如果不重新启动它的话)

关于nginx - 如何使NGINX从cron作业重新启动/重新加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25953339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com