คำถามติดแท็ก init.d

ไดเร็กทอรี init.d มีสคริปต์ start / stop จำนวนหนึ่งสำหรับเซอร์วิสต่างๆบนระบบ Linux

6
“ reboot” หรือ“ shutdown -r now”: คำสั่ง restart อะไรปลอดภัยกว่ากัน?
เรามีในองค์กรของเราประมาณ 500 เครื่อง RedHat Linux ในทุกเครื่องเราติดตั้งแอพพลิเคชั่นและบริการภายใต้/etc/init.dและเซิร์ฟเวอร์ oracle RAC เราตั้งใจที่จะทำการปรับปรุงยำในทุกเครื่องและหลังจากนั้นทำการรีบูต ดังนั้นฉันจึงสงสัยว่าคำสั่งใดปลอดภัยกว่า: reboot หรือ shutdown -r now

6
วิธีที่ง่ายที่สุดในการทำให้สคริปต์ init เก่าของฉันทำงานใน systemd คืออะไร
ฉันไม่ต้องการทำสิ่งที่ถูกต้องด้วยการสร้างสคริปต์ systemd ใหม่ฉันแค่อยากให้สคริปต์ init เก่าทำงานอีกครั้งตอนนี้ฉันได้อัพเกรดระบบของฉันเป็นระบบปฏิบัติการที่ใช้ systemd ฉันได้ทำการค้นคว้าสั้น ๆ ถึงวิธีการแปลงสคริปต์เริ่มต้นและวิธีการเขียนสคริปต์ systemd แต่ฉันแน่ใจว่าการเรียนรู้อย่างถูกต้องและการทำอย่างถูกต้องจะใช้เวลาหลายชั่วโมง สถานการณ์ปัจจุบันคือ: systemctl start solr Failed to start solr.service: Unit solr.service failed to load: No such file or directory. และ: sudo service solr start Failed to start solr.service: Unit solr.service failed to load: No such file or directory. ตอนนี้ฉันแค่อยากกลับไปทำงาน เส้นทางของความต้านทานน้อยที่สุดเพื่อให้การทำงานนี้อีกครั้งคืออะไร? …
48 init.d  systemd 

4
วิธีค้นหาข้อความแสดงข้อผิดพลาดจากสคริปต์ Linux init.d / rc.d
ใน Linux ฉันได้เขียนสคริปต์บางอย่างเพื่อให้ทำงานในระหว่างการบู๊ตและเล่นด้วยวิธีต่างๆในการติดตั้งสคริปต์ สำหรับสคริปต์ขนาดใหญ่ผมจะใส่ใน/etc/init.dและเชื่อมโยงที่เหมาะสม/etc/rc.d/rc?.drunlevels /etc/rc.d/rc.localสำหรับสคริปต์ที่มีขนาดเล็กผมจะผนวกกับ กระบวนการนี้ดูเหมือนว่าจะทำงานได้อย่างราบรื่น ตอนนี้ฉัน tweaked หนึ่งในสคริปต์ของฉันและมันล้มเหลว ฉันมีเวลาสักครู่วินิจฉัยมันเพราะฉันดูเหมือนจะไม่สามารถจับเอาท์พุทข้อผิดพลาดได้ ฉันได้ตรวจสอบ/var/log/messagesและแหย่ไปรอบ ๆ ส่วนที่เหลือ/var/logแต่ไม่พบสิ่งที่ใช้ ไม่มีใครรู้: ข้อความผิดพลาดเหล่านี้จึงถูกจับโดยอัตโนมัติที่ไหนสักแห่ง? ถ้าไม่ฉันจะจับ stdout / stderr จากสคริปต์ init.d ของฉันได้อย่างไร ขอบคุณล่วงหน้า.
28 linux  logging  init.d  rc.d 

2
วิธีการลบ / สำรองสคริปต์จาก /etc/init.d/?
ฉันทำงานกับ linux มาระยะหนึ่งแล้ว แต่ค่อนข้างง่าย ฉันเข้าใจว่าสคริปต์ในinit.dจะดำเนินการเมื่อระบบปฏิบัติการเริ่มต้น แต่มันทำงานอย่างไร ถ้าฉันต้องการเก็บสคริปต์ แต่ไม่ต้องการให้สคริปต์เริ่มโดยอัตโนมัติ บอกว่าฉันมี/etc/init.d/varnishและต้องการที่จะปิดการใช้งานชั่วคราว ฉันจะแน่ใจได้อย่างไรว่ามันจะไม่เริ่มต้นหากระบบปฏิบัติการรีบูต ฉันไม่ต้องการลบสคริปต์ จะทำอย่างไรถ้าฉันต้องการเพิ่มอีกครั้ง

4
รัน nginx ในฐานะผู้ใช้ที่ไม่ใช่รูท
ฉันได้ปฏิบัติตามขั้นตอนนี้เพื่อติดตั้ง nginx บน Ubuntu 10.04 Lucid Server ของฉันhttp://library.linode.com/web-servers/nginx/installation/ubuntu-10.04-lucid ฉันหลงทางหลังจากจุดสร้างสคริปต์เริ่มต้นเพื่อเริ่ม nginx แล้วเรียก /etc/init.d/nginx start เมื่อฉันทำอย่างนั้นฉันได้รับข้อผิดพลาดต่อไปนี้: Starting nginx_main: Starting /opt/nginx/sbin/nginx... nginx: [alert] could not open error log file: open() "/opt/nginx/logs/error.log" failed (13: Permission denied) 2012/03/16 18:17:27 [emerg] 859#0: open() "/opt/nginx/logs/access.log" failed (13: Permission denied) วิธีเดียวที่ฉันสามารถเรียกใช้ได้คือถ้าฉันใช้sudoและมันทำงานตามกระบวนการrootซึ่งเป็นสิ่งที่ฉันไม่ต้องการ ฉันchownเป็นไดเรกทอรีทั้งหมด ( chown -R nginx:nginx /opt/nginx) และฉันก็chmod …

1
วิธีเริ่ม mysql โดยอัตโนมัติหลังจากรีสตาร์ทเซิร์ฟเวอร์ (CentOS + distros อื่น ๆ )
ฉันจะกำหนดค่าเซิร์ฟเวอร์ CentOS Linux ของฉันให้เริ่ม mysql โดยอัตโนมัติเมื่อเซิร์ฟเวอร์เริ่มต้นหลังจากปิดระบบได้อย่างไร ฉันรู้เส้นทาง init.d ... /etc/rc.d/init.d ... และฉันเห็น mysqld ในโฟลเดอร์นี้ ฉันเชื่อว่าการวางรายการ (เช่นโดยลิงก์สัญลักษณ์) ในโฟลเดอร์นี้หมายความว่าพวกเขาควรเริ่มต้นเมื่อเซิร์ฟเวอร์รีสตาร์ท แต่สิ่งนี้ไม่ได้เกิดขึ้นกับฉัน พื้นหลัง โต๊ะกลางของเรารีสตาร์ทเซิร์ฟเวอร์ CentOS เสมือนจริงของเราในช่วงสุดสัปดาห์ เซิร์ฟเวอร์พร้อมใช้งานหลังจากรีสตาร์ท แต่ฐานข้อมูล MySQL ไม่ได้รีสตาร์ทด้วย คิด?
17 linux  mysql  init.d 

2
PHP-FPM ไม่เริ่มทำงานโดยอัตโนมัติหลังจากรีบูต
ฉันใช้ PHP-FPM และ Nginx เป็นครั้งคราวด้วยเหตุผลใดก็ตามฉันต้องรีบูตเซิร์ฟเวอร์ เมื่อเซิร์ฟเวอร์ทำงานอีกครั้งบริการ nginx จะเริ่มทำงานโดยอัตโนมัติอย่างไรก็ตาม PHP-FPM จะไม่ทำงาน สิ่งนี้สามารถเห็นได้เมื่อฉันรันคำสั่งsudo /etc/init.d/php-fpm restartทันทีหลังจากรีบูตและรับผลลัพธ์: $ sudo /etc/init.d/php-fpm restart Stopping php-fpm: [FAILED] Starting php-fpm: [ OK ] เป็นพฤติกรรมที่คาดหวังหรือไม่ วิธีที่ดีที่สุดในการทำให้ PHP-FPM เริ่มต้นโดยอัตโนมัติคืออะไร มีตัวเลือกการกำหนดค่าที่ใด ๆ หรือฉันต้องเพิ่มคำสั่งลงในสคริปต์เริ่มต้นระบบ Linux อย่างใดอย่างหนึ่งหรือไม่ ขอบคุณ

5
วิธีมาตรฐานหรือวิธีที่ดีที่สุดเพื่อให้กระบวนการมีชีวิตเริ่มต้นโดย init.d
ฉันกำลังมองหาวิธีมาตรฐานหรือวิธีปฏิบัติที่ดีที่สุดเพื่อให้ดีมอนเริ่มต้นโดยinit.dเชลล์สคริปต์มีชีวิตอยู่ หรือดียิ่งกว่านี้มีวิธีที่จะทำให้มันมีชีวิตอยู่โดยตรง/etc/init.dหรือไม่ โดยเฉพาะฉันมีดีมอนที่เรียกว่า dtnd with และ infinite loop ที่ค้นหากระบวนการสิ้นสุดที่ไม่คาดคิดหากมี daemon ก็จะปลุกพวกเขาอีกครั้ง นอกจากนี้ฉันใช้เครื่องมือ start-stop-daemon เพื่อให้ precess โดยเรียกใช้จากผู้ใช้ระบบที่กำหนด ฉันต้องการเรียกใช้ dtnd daemon นี้ตั้งแต่เริ่มต้น เพื่อให้บรรลุพฤติกรรมนี้ฉันสร้างสคริปต์ init.d ที่ "ตัดคำ" ไฟล์ dtnd โดยใช้คำสั่ง start, stop และ status ฉันมีคำถาม 2 ข้อที่ฉันต้องการแก้ไข: มีวิธีที่จะทำให้กระบวนการบางอย่างอยู่รอดจากเชลล์สคริปต์init.dหรือไม่ เป็นการปฏิบัติตามมาตรฐาน / วิธีที่ดีที่สุด? เราขอแนะนำให้รักษากระบวนการให้คงอยู่ด้วยการวนซ้ำแบบไม่สิ้นสุด? ฉันเดาว่าจะใช้คำสั่งบางอย่างดีกว่าrespawnเพื่อให้บรรลุ ถูกต้อง? ฉันรู้เกี่ยวกับการดำรงอยู่ของrespawnคำสั่ง ผมคิดว่าเป็นสิ่งที่ฉันต้องการ แต่ฉันไม่เข้าใจขั้นตอนการทำงานระหว่างและ/etc/init.d/ /etc/initมีใครช่วยฉันบ้าง โปรดทราบว่าผมไม่ได้มี inittab พุ่งพรวดค่า (ฉันได้รับอนุญาตให้ใช้งาน/etc/init, /etc/init.d, …

4
การเริ่มต้นสคริปต์เป็นผู้ใช้อื่น
ฉันได้สร้างสคริปต์ใน /etc/init.d/ ซึ่งจะต้องเรียกใช้สคริปต์อื่น ๆ จากผู้ใช้ (ไม่ใช่ผู้ใช้ที่มีสิทธิ์รูท) จากโฮมไดเรกทอรีของพวกเขาราวกับว่าพวกเขาเริ่มต้นมัน ฉันเปิดใช้งานสคริปต์เหล่านี้ด้วย: sudo -b -u <username> <script_of_a_particular_user> และมันใช้งานได้ แต่สำหรับสคริปต์ของผู้ใช้ทุกคนที่ยังคงทำงานอยู่ (ตัวอย่างเช่นสุนัขเฝ้าบ้านบางคน) ฉันเห็นกระบวนการ sudo หลักที่เกี่ยวข้องยังมีชีวิตอยู่และทำงานเป็นรูท สิ่งนี้สร้างความยุ่งเหยิงในรายการกระบวนการที่ใช้งานอยู่ ดังนั้นคำถามของฉันคือ: ฉันจะเปิดตัว (แยก) สคริปต์อื่นจากสคริปต์ทุบตีที่มีอยู่ในฐานะผู้ใช้รายอื่นและปล่อยให้เป็นกระบวนการกำพร้า (ยืนอยู่คนเดียว) ได้อย่างไร คำอธิบายโดยละเอียดเพิ่มเติม: โดยทั่วไปฉันพยายามให้ผู้ใช้รายอื่นบนเครื่องมีวิธีการรันสิ่งต่าง ๆ เมื่อระบบเริ่มต้นหรือปิดระบบโดยการเรียกใช้ไฟล์ปฏิบัติการที่พบในไดเรกทอรีย่อยตามลำดับที่พบในไดเรกทอรีบ้านของพวกเขา เนื่องจากฉันไม่พบวิธีอื่นใดที่ฉันเขียนสคริปต์ทุบตีของฉันที่ทำอย่างนั้นและฉันได้กำหนดค่าเป็นสคริปต์บริการ (โดยทำตามตัวอย่างโครงกระดูก) ใน /etc/init.d/ ดังนั้นเมื่อมันทำงาน ด้วยอาร์กิวเมนต์เริ่มต้นมันจะเปิดตัวทุกอย่างจากไดเรกทอรีเริ่มต้นขึ้นและเมื่อมันถูกเรียกใช้ด้วยอาร์กิวเมนต์หยุดมันจะเปิดตัวทุกอย่างจากไดเรกทอรี. shutDown ของผู้ใช้ทั้งหมดเช่นเดียวกับพวกเขา หรือฉันก็สนใจถ้าฉันสามารถใช้วิธีแก้ปัญหาที่มีอยู่เพื่อแก้ปัญหานี้ได้ อัปเดต ฉันดูรอบ ๆ แล้วฉันพบคำถามนี้: /unix/22478/detach-a-daemon-using-sudo คำตอบที่ยอมรับได้มีการใช้: ใช้sudo -u user sh -c …
12 linux  debian  bash  sudo  init.d 

5
ฉันจะเริ่มต้นกระบวนการใหม่โดยอัตโนมัติหลังจากที่ยุติได้อย่างไร
ฉันมีโปรแกรม golang ที่ฉันต้องการรีสตาร์ทหลังจากมันสิ้นสุดลงในกล่อง Debian Squeeze สิ่งที่ให้บริการ HTTP อยู่หลังการติดตั้ง Apache 2 mod_proxy ฉันไม่คาดหวังว่ากระบวนการจะล้มเหลว แต่ฉันต้องการทำประกันกับมัน บน Ubuntu ฉันจะใช้งานธรรมดาเพื่อรักษากระบวนการให้อยู่รอด เดเบียนไม่ชอบการพุ่งพรวดจากสิ่งที่ฉันเข้าใจเพราะมันเป็นการแทนที่แบบ init มีทางเลือกใดบ้างที่จะรีสตาร์ทหนึ่งกระบวนการขึ้นไปหลังจากที่ยุติการทำงานใน Squeeze และเล่นกับ init ดี?

1
status_of_proc คืออะไรและฉันจะเรียกมันได้อย่างไร
ในสคริปต์ init ของ nginx ใน Debian 7 (Wheezy) ฉันอ่าน exerpt ต่อไปนี้: status) status_of_proc -p /var/run/$NAME.pid "$DAEMON" nginx && exit 0 || exit $? ;; รหัสนี้จะทำงานได้ดีและเอาท์พุทsudo service nginx status [ ok ] nginx is runningยังstatus_of_procไม่ได้กำหนดไว้ในทุบตีและไม่รีบ: $ type status_of_proc status_of_proc: not found แม้ว่าฉันจะใส่เช็คเดียวกันลงในสคริปต์ nginx แต่ฉันได้ผลลัพธ์ดังต่อไปนี้: status_of_proc is a shell function และการใช้ bash …

3
การรันโปรแกรมโดยพลการเป็น daemon จากสคริปต์ init
ฉันต้องติดตั้งโปรแกรมเป็นบริการใน Red Hat มันไม่ได้แบ็คกราวด์จัดการไฟล์ PID หรือจัดการบันทึกของตัวเอง มันทำงานและพิมพ์ไปที่ STDOUT และ STDERR การใช้สคริปต์ init มาตรฐานเป็นแนวทางฉันได้พัฒนาสิ่งต่อไปนี้: #!/bin/bash # # /etc/rc.d/init.d/someprog # # Starts the someprog daemon # # chkconfig: 345 80 20 # description: the someprog daemon # processname: someprog # config: /etc/someprog.conf # Source function library. . /etc/rc.d/init.d/functions prog="someprog" exec="/usr/local/bin/$prog" [ -e …
10 redhat  service  init.d 

4
สคริปต์ init.d ที่เขียนด้วย Python
มีคำถามเกิดขึ้นใน StackOverflow ซึ่งถามเกี่ยวกับการเขียนinit.dสคริปต์ใน Python หนึ่งความคิดเห็นระบุว่าสคริปต์เหล่านี้ควรตั้งโปรแกรมในเชลล์ไม่ใช่ Python กำลังเขียนinit.dสคริปต์ใน Python: ไม่ดี ไม่ดี ไม่ดี อย่าทำอย่างนี้ ไม่ใช่วิธีปฏิบัติที่แนะนำ ตกลงกับคำเตือน มรดกความเชื่อ ดีโดยสิ้นเชิง มันจะเป็นการดีหากรู้สถานการณ์ฝันร้ายใด ๆ หรือถ้ากฎนี้เขียนด้วยเลือดของระบบ
10 linux  python  init.d 

2
การเรียกใช้ daemon ในสคริปต์ /etc/init.d กำลังบล็อกไม่ทำงานในพื้นหลัง
ฉันมีสคริปต์ Perl ที่ฉันต้องการ daemonize โดยพื้นฐานแล้วสคริปต์ Perl นี้จะอ่านไดเรกทอรีทุก ๆ 30 วินาทีอ่านไฟล์ที่พบแล้วประมวลผลข้อมูล เพื่อให้ง่ายขึ้นที่นี่ให้พิจารณาสคริปต์ Perl ต่อไปนี้ (เรียกว่า synpipe_server มีลิงก์สัญลักษณ์ของสคริปต์นี้/usr/sbin/): #!/usr/bin/perl use strict; use warnings; my $continue = 1; $SIG{'TERM'} = sub { $continue = 0; print "Caught TERM signal\n"; }; $SIG{'INT'} = sub { $continue = 0; print "Caught INT signal\n"; }; my …
9 linux  unix  daemon  init.d 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.