সিস্টেমেড দিয়ে বুটে এনগিনেক্স শুরু করুন


18

আমি সবেমাত্র একটি ডেবিয়ান 8 সার্ভারে এনগিনেক্স 1.9 ইনস্টল করেছি। nginx ঠিকঠাক কাজ করছে, যখন আমি এটি চালানোর জন্য বলি, তবে এটি বুট করার সময় স্বয়ংক্রিয়ভাবে nginx লোড হবে না।

আমি ইন্টারনেটে প্রস্তাবিত অসংখ্য init স্ক্রিপ্ট চেষ্টা করেছি, তবে কিছুই এখনও কার্যকর হয়নি has সুতরাং এখন আমি এটি সিস্টেমেটিএল দিয়ে বের করার চেষ্টা করছি।

~$ systemctl status nginx
● nginx.service
   Loaded: masked (/dev/null)
   Active: inactive (dead)
~$ sudo systemctl try-restart nginx
Failed to try-restart nginx.service: Unit nginx.service is masked.
~$ sudo systemctl reload nginx
Failed to reload nginx.service: Unit nginx.service is masked.
~$ sudo systemctl reload nginx
Failed to reload nginx.service: Unit nginx.service is masked.

দুর্ভাগ্যক্রমে, "পরিষেবাটি মুখোশযুক্ত" এর অর্থ কী তা আমি জানি না এবং কেন এটি মুখোশযুক্ত don't

আমি যখন দৌড়াচ্ছি

sudo nginx

সার্ভার ঠিক চলছে। সুতরাং, আমি nginx পরিষেবা আনমস্ক করার দিকে তাকিয়েছিলাম looked

~$ sudo systemctl unmask nginx.service
Removed symlink /etc/systemd/system/nginx.service.

ঠিক আছে, এখন আমি systemctl ব্যবহার করে nginx শুরু করতে পারি। সুতরাং আমি পুনরায় বুট করা nginx স্বয়ংক্রিয়ভাবে লোড হবে কিনা তা পরীক্ষা করে দেখেছি। তবে এটি করতে ব্যর্থ হয়েছে এবং এখান থেকে কোথায় যাব আমার কোনও ধারণা নেই।

কেউ আমাকে বুটে স্বয়ংক্রিয়ভাবে চালনার জন্য এনজিনেক্স করতে সহায়তা করতে পারে?


6
systemctl enable nginx...
জেসনওয়ারিয়ান

উত্তর:


21

আপনি সক্ষম বিভ্রান্ত বলে মনে হচ্ছে, শুরু এবং মাস্ক অপারেশন।

  • systemctl start, systemctl stop: অবিলম্বে প্রশ্নে ইউনিট শুরু (থামিয়ে দেয়) ;
  • systemctl enable, systemctl disable: বুট সময়ে অটোস্টার্টের জন্য ইউনিট চিহ্নিত করে (চিহ্নহীন) (ইউনিট-নির্দিষ্ট পদ্ধতিতে, এর [Install]বিভাগে বর্ণিত );
  • systemctl mask, systemctl unmask: প্রশ্নে ইউনিট শুরু করার সমস্ত এবং যে কোনও প্রচেষ্টাকে অনুমতি দেয় (ম্যানুয়ালি বা ডিফল্ট বুট টার্গেটের নির্ভরতা সহ অন্য কোনও ইউনিটের নির্ভরতা হিসাবে)। নোট করুন যে সিস্টেমেডে অটোস্টার্টের জন্য চিহ্নিতকরণটি প্রশ্নযুক্ত ইউনিটে ডিফল্ট বুট লক্ষ্য থেকে একটি কৃত্রিম নির্ভরতা যুক্ত করে প্রয়োগ করা হয়, সুতরাং "মুখোশ" অটোস্টার্টিংকেও অস্বীকার করে।

সুতরাং, এই সমস্ত স্বতন্ত্র অপারেশন। এর মধ্যে, আপনি চান systemctl enable

রেফারেন্স: সিস্টেমটেক্ট (1)

আরও: লেনার্ট কবিতা (2011-03-02)। "অফ তিন স্তরের"প্রশাসকদের জন্য systemd । 0pointer.de।


আমি শুধু nginx বুট লোড করতে চান। আমি ভেবেছিলাম সিস্টেমেটেল কেন এটি হচ্ছে না তা নির্ধারণে আমাকে সহায়তা করতে পারে।
j0h

@ j0h: আমার উত্তরটি আবার পড়ুন। আমি এটি বর্ণনা করেছি যে এটি কেন অটোস্টার্ট হয় না এবং এটিকে অটোস্টার্ট তৈরি করতে কী করতে হবে। ইঙ্গিত: শেষ বাক্য।
ইন্টেলএফএক্স

লিঙ্কটি একটি 404 পৃষ্ঠায় পুনঃনির্দেশ করে এবং আমি এনজিএনএক্স সক্ষম করতে সিস্টেমেস্টিট ব্যবহার করেছি। যখন আমি রিবুট করলাম, এটি এখনও চলছিল না। সম্ভবত আমার সিস্টেমেটেল এনগিনেক্স.সার্ভিস সক্ষম করার চেষ্টা করা উচিত
j0h

1
@ j0h: আমি বাক্য বোঝাতে চেয়েছি, রেফারেন্স নয়। (বিটিডাব্লু, ভাঙা লিঙ্কের জন্য দুঃখিত - এখনই ঠিক করা হয়েছে)) এবং হ্যাঁ, এটি আবার একবারে পড়ুন, আপনাকে বুটে কিছু শুরু করার দরকার নেই systemctl enable(হবে না systemctl start)।
ইন্টেলএফএক্স

2

গ্রহণযোগ্য উত্তরে লিঙ্কটি স্থির করে তাই এটি সঠিক পৃষ্ঠায় পুনঃনির্দেশ করে। তবে এখানে একটি প্রাসঙ্গিক বিট:

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

`

ইউএনএক্সকে বাসি ইউনিক্স সকেট ছেড়ে যাওয়া এবং পরবর্তী শুরুতে ব্যর্থ হওয়ার জন্য ট্র্যাকের পরিবর্তে টিআইআরএম ব্যবহার করুন ( trac.nginx.org/nginx/ticket/753 )
বিপদে 89

2

হেরিস আমার জন্য কী কাজ করেছে: https://web.archive.org/web/20150328063215/https://longhandpixels.net/blog/2014/02/install-nginx-debian-ubuntu

আমি বেশিরভাগ দস্তাবেজকে উপেক্ষা করেছি, যা অন্যান্য সংস্করণগুলি এনজিনেক্সের সংকলনের জন্য নির্দিষ্ট ছিল এবং "এটি অটোস্টার্ট তৈরি করুন" তে গিয়েছিল।

আমি সেখানকার দিকনির্দেশগুলি অনুসরণ করেছি এবং এখন যখন আমি রিবুট করব তখন এনগিনেক্স ১.৯ চলছে।

আমি অবশ্যই প্রত্যেকের সহায়তা এবং অন্তর্দৃষ্টি প্রশংসা করি। সবাইকে ধন্যবাদ!


4
দয়া করে কেবল উত্তর হিসাবে লিঙ্কগুলি ফেলে দেবেন না: প্রাসঙ্গিক তথ্য যুক্ত করুন যাতে উত্তরটি কোনও বাহ্যিক সংস্থার উপর নির্ভরশীল না হয় ...
জেসনওয়ারিয়ান

4
আসলে এখন বহিরাগত রিসোর্স চলে গেছে ইন ... web.archive তে এটি দেখুন: web.archive.org/web/20150328063215/https://longhandpixels.net/...
পুনর্লিখিত

1

এনগিনেক্স রিসোর্স থেকে https://www.nginx.com/resources/wiki/start/topics/example/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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.