запускать nginx при загрузке с systemd

В первую очередь, благодаря rici для ответа, его метод работает, но я просто нашел тот, который лучше подходит мне.

сначала я сохраняю старый gcc под другим именем в случае, если вещи спутываются:

mv /usr/bin/gcc /usr/bin/gcc_old
mv /usr/bin/g++ /usr/bin/g++_old

затем я связываю свою новую сборку с gcc и копирую некоторый важный материал:

ln -s -f /opt/gcc-4.6.3/bin/gcc /usr/bin/gcc
ln -s -f /opt/gcc-4.6.3/bin/g++ /usr/bin/g++

cp /opt/gcc-4.6.3/lib64/libstdc++.so.6.0.16 /usr/lib64/.
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak
ln -s -f /usr/lib64/libstdc++.so.6.0.16 /usr/lib64/libstdc++.so.6

Моя благодарность Jacky Wei от хип-хопа команда мерзавца Facebook для справки.

18
04.09.2016, 18:47
5 ответов

Вот, что работало для меня: https://web.archive.org/web/20150328063215/http://longhandpixels.net/blog/2014/02/install-nginx-debian-ubuntu

Я проигнорировал большую часть документа, который был Специфичные для составления других версий, Nginx, и перешли на «сделать его автозапуск».

Я следовал указаниям там, и теперь, когда я перезагружаюсь, Nginx 1.9 работает.

Я определенно ценю помощь всем, и понимание. Спасибо вам всем!

2
27.01.2020, 19:46

В вашем сценарии команда считывается из стандартного ввода; если он не принимает какой-либо другой способ предоставления этой информации, вы должны продолжать подавать ее свой вклад таким образом. Поэтому, если вы не хотите использовать файл, используйте printf с каналом:

printf "To: me@domain.com\nMessage: Some message" | command
-121--205338-

Вы можете использовать точку с запятой ; или & & так:

cmd1; cmd2   # Runs both the commands, even if the first one exits with a non-zero status.

cmd1 && cmd2 # Only runs the second command if the first one was successful.
-121--8290-

Вы, кажется, путаете включение, запуск и

  • systemctl start , systemctl stop : запускает (останавливает) данный блок немедленно ;
  • systemctl enable , systemctl disable : маркирует (демаркирует) блок для автозапуска во время загрузки (специфичным для блока способом, описанным в разделе [Установка] );
  • systemctl mask , systemctl unmask : запрещает (разрешает) все и любые попытки запуска данного модуля (вручную или в зависимости от любого другого модуля, включая зависимости целевого объекта загрузки по умолчанию). Заметим, что маркировка для автозапуска в systemd реализуется путем добавления искусственной зависимости от целевого объекта загрузки по умолчанию к рассматриваемому блоку, поэтому «маска» также запрещает автозапуск.

Таким образом, все это различные операции. Из них необходимо включить systemctl .

Ссылка: systemctl (1) .

Подробнее: Леннарт Поэттеринг (2011-03-02). «Три уровня выключения» . systemd для администраторов . 0pointer.de.

21
27.01.2020, 19:46

Исправлена ​​ссылка в принятом ответе, чтобы она перенаправляла на нужную страницу. Но вот важный бит:

sudo systemctl enable nginx.service
sudo systemctl start nginx.service
sudo systemctl status nginx.service

где /lib/systemd/system/nginx.service выглядит примерно так:

# 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=network.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

`
2
27.01.2020, 19:46

from nginx resources https://www.nginx.com/resources/wiki/start/topics/examples/systemd/

echo "
[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
" > /lib/systemd/system/nginx.service
1
27.01.2020, 19:46

Столкнулся с той же проблемой, и вот что у меня сработало.

sudo systemctl unmask nginx.service

, затем

sudo systemctl enable nginx.service

наконец

service nginx start

изhttps://mkyong.com/nginx/nginx-unit-nginx-service-is-masked/

1
05.02.2021, 17:08

Теги

Похожие вопросы