Nginx – Service Nginx doesn’t work

nginx

I've compiled nginx v1.9.6 from source on a debian(jessie v8.2) system. But it's not working as expected. Didn't have any problem with the 1.9.3 version.

when I try to run service nginx start i get this message:

Failed to start nginx.service: Unit nginx.service failed to load: No such file or directory.

I used these arguments for configuration:

configure arguments: –prefix=/etc/nginx –sbin-path=/usr/sbin/nginx
–conf-path=/etc/nginx/nginx.conf –error-log-path=/var/log/nginx/error.log –http-log-path=/var/log/nginx/access.log –pid-path=/var/run/nginx.pid –lock-path=/var/run/nginx.lock –user=myuser –group=myuser –without-mail_pop3_module –without-mail_imap_module –without-mail_smtp_module –with-http_ssl_module –with-http_v2_module –with-file-aio –with-ipv6 –without-http_memcached_module

Best Answer

If you get the error message Failed to start nginx.service: Unit nginx.service failed to load: No such file or directory. systemd has not found a unit file.

The installation from source did not provide a unit file. You need to create a unit file for nginx like this.

[Unit]
Description=The NGINX HTTP and 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
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Adjust the paths to your installation and store the file under /lib/systemd/system/nginx.service. You need to run systemctl daemon-reload to reload systemd.

Take a look at the official documentation for more information.