启动nginx报错Failed to start nginx.service: Unit nginx.service not found.

本文介绍了Qt应用程序开发中的多个实用技巧,包括定时器设置、获取系统时间、窗口操作、事件处理、画布绘制、布局管理及控件使用等,帮助开发者快速掌握Qt开发要点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在ubuntu上编译nginx成功后,通过sudo systemctl start ngin启动服务时报Failed to start nginx.service: Unit nginx.service not found.本篇记录解决方法。

解决办法

1. 在/etc/init.d/目录下新建文件,文件名为nginx

scott@ubuntu1804:~$ cd /etc/init.d
scott@ubuntu1804:/etc/init.d$ sudo vim nginx

输入以下内容:

#!/bin/sh
# nginx - this script starts and stops the nginx daemin
#
# chkconfig:   - 85 15

# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server

# processname: nginx
# config:      /usr/local/nginx/conf/nginx.conf
# pidfile:     /usr/local/nginx/logs/nginx.pid

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/local/nginx/sbin/nginx"

prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

lockfile=/var/lock/subsys/nginx

start() {

    [ -x $nginx ] || exit 5

    [ -f $NGINX_CONF_FILE ] || exit 6

    echo -n $"Starting $prog: "

    daemon $nginx -c $NGINX_CONF_FILE

    retval=$?

    echo

    [ $retval -eq 0 ] && touch $lockfile

    return $retval

}


stop() {

    echo -n $"Stopping $prog: "

    killproc $prog -QUIT

    retval=$?

    echo

    [ $retval -eq 0 ] && rm -f $lockfile

    return $retval

}



restart() {

    configtest || return $?

    stop

    start

}


reload() {

    configtest || return $?

    echo -n $"Reloading $prog: "

    killproc $nginx -HUP

    RETVAL=$?

    echo

}

force_reload() {

    restart

}


configtest() {

  $nginx -t -c $NGINX_CONF_FILE

}



rh_status() {

    status $prog

}


rh_status_q() {

    rh_status >/dev/null 2>&1

}

case "$1" in

    start)

        rh_status_q && exit 0
        $1
        ;;

    stop)


        rh_status_q || exit 0
        $1
        ;;

    restart|configtest)
        $1
        ;;

    reload)
        rh_status_q || exit 7
        $1
        ;;


    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;


    condrestart|try-restart)

        rh_status_q || exit 0
            ;;

    *)

        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2

esac

保存,退出

 2.修改nginx权限为可执行

 sudo chmod 755 /etc/init.d/nginx

现在的nginx为可读可写可执行权限了。

3.把nginx服务添加到 chkconfig 管理。

scott@ubuntu1804:/etc/init.d$ sudo chkconfig --add nginx
sudo: chkconfig: command not found

没有这个命令,安装这个命令

ubuntu上装不了这个命令

启动nginx服务

sudo service nginx start

这种方式启动不了nginx服务

使用systemctl查看一下

重新加载

scott@ubuntu1804:/etc/init.d$ sudo systemctl daemon-reload

 查看/etc/rc.d/init.d/function文件

/etc/init.d目录下没有rc.d目录

/etc/rc.d/init.d/functions是CentOS的位置,Ubuntu对应:/lib/lsb/init-functions

修改脚本

修改保存,再次启动

/etc/init.d/nginx: 18: .: Can't open /etc/sysconfig/network  没有/etc/sysconfig目录

========================================================

看来这种方式行不通,换种方式

在/etc/systemd/system/下创建nginx.service文件,内容为

Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target

sudo chmod 777 nginx.service

启动nginx

scott@ubuntu1804:~$ sudo systemctl start nginx

10月 02 16:24:19 ubuntu1804 systemd[1]: Starting nginx.service...
10月 02 16:24:19 ubuntu1804 nginx[4996]: nginx: [emerg] getpwnam("www") failed

原因是在confige的时候加了参数--user=www \
                                --group=www \

添加www用户和组

scott@ubuntu1804:~$ sudo groupadd -f www
[sudo] password for scott:
scott@ubuntu1804:~$ sudo useradd -g www www

scott@ubuntu1804:~$ sudo systemctl start nginx

查看服务状态

说明nginx服务已经起来了。

在浏览器中输入http://127.0.0.1/

参考:

在centos下启动nginx出现Failed to start nginx.service:unit not found 错误的原因就是没有添加nginx服务,所以启动失败。_failed to start nginx.service: unit nginx.service -优快云博客

Ubuntu 16.04出现Can't open /etc/rc.d/init.d/functions的问题解决 - EasonJim - 博客园

sudo /etc/init.d/keepalived start 提示:Can't open /etc/rc.d/init.d/functions-优快云博客

 

nginx学习笔记 - Ari的小跟班 - 博客园

Nginx VOD Module 教程-优快云博客

Ubuntu 系统下安装 Nginx_ubuntu安装nginx-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值