systemctl start/stop service: วิธีการตั้งค่า Upstart Script และ Respawn Process ใน Ubuntu, CentOS, Redhat Linux
เผยแพร่แล้ว: 2021-06-09จะเขียนสคริปต์เริ่มต้นสำหรับ systemd ได้อย่างไร?
systemd
เป็น service management utility
ล่าสุดในเวอร์ชันล่าสุดของ Linux เช่น Ubuntu OS, Redhat OS, CentOS
นั่นเป็นสาเหตุที่เวอร์ชัน Ubuntu 17.4 และ Redhat 7.4 รองรับ systemctl command
เป็นสคริปต์พุ่งพรวด หากคุณใช้ Linux OS เวอร์ชันเก่า คุณอาจต้องดูที่ด้านล่างสุดของหน้านี้เพื่อดู init.d script
ที่เก่ากว่า
เราจะพูดถึงสิ่งต่าง ๆ ด้านล่างในบทช่วยสอนนี้
- การตั้งค่าหน่วยบริการ systemd
- จะ
configure
systemd ได้อย่างไร? - วิธี
enable
งาน systemd? - เริ่มต้นกระบวนการโดยอัตโนมัติโดยใช้ systemd อย่างไร?
- จะหยุดและ
respawn
กระบวนการใหม่โดยใช้ systemd ได้อย่างไร?
ขั้นตอนการตั้งค่าสำหรับบทช่วยสอนนี้:
Prerequisite:
เราได้คอมไพล์โปรแกรม CrunchifyAlwaysRunningProgram.java เวอร์ชันที่คอมไพล์ไว้ที่โฟลเดอร์ /tmp/crunchify
กระบวนการจาวานี้จะทำงานในพื้นหลังตลอดไป คุณสามารถดาวน์โหลดโปรแกรมได้จากที่นี่
เมื่อคุณดาวน์โหลดแล้ว try to compile
และรันมันเพื่อให้แน่ใจว่าใช้งานได้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
root @ crunchify : / tmp / crunchify # ls -ltr - rw - r -- r -- 1 root root 120 Oct 6 17 : 57 crunchify . tar . gz drwxr - xr - x 2 root root 4096 Oct 6 18 : 01 tomcat drwxr - xr - x 2 root root 4096 Oct 6 18 : 02 java - rw - r -- r -- 1 root root 621 Oct 7 16 : 06 package - rwxrwxrwx 1 root root 838 Oct 7 16 : 07 CrunchifyAlwaysRunningProgram . java - rwxrwxrwx 1 root root 1295 Oct 8 14 : 38 CrunchifyAlwaysRunningProgram . class root @ crunchify : / tmp / crunchify # javac CrunchifyAlwaysRunningProgram.java root @ crunchify : / tmp / crunchify # java CrunchifyAlwaysRunningProgram always running program == > Sun Oct 08 14 : 39 : 14 UTC 2017 always running program == > Sun Oct 08 14 : 39 : 16 UTC 2017 . . . . . . . . . |
คุณสามารถพิมพ์ CTRL + C
เพื่อออกจากโปรแกรม
มาเริ่มกันที่การตั้งค่าสคริปต์เริ่มต้นระบบอัตโนมัติของ systemd สำหรับโปรแกรมด้านบน
ขั้นตอนที่ 1
- ไปที่โฟลเดอร์ /lib/systemd/system
- พิมพ์
cd /lib/systemd/system
ขั้นตอนที่ 2
- สร้างไฟล์
crunchify.service
(เปลี่ยนชื่อไฟล์ตามนั้น) - ใส่เนื้อหาด้านล่างลงไป
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[ Unit ] Description = Crunchify Java Process Restart Upstart Script After = auditd . service systemd - user - sessions . service time - sync . target [ Service ] User = root TimeoutStartSec = 0 Type = simple KillMode = process export JAVA_HOME =/ opt / java / jdk - 9 export PATH = $ PATH : $ JAVA_HOME / bin WorkingDirectory =/ tmp / crunchify ExecStart =/ opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram Restart = always RestartSec = 2 LimitNOFILE = 5555 [ Install ] WantedBy = multi - user . target |

ขั้นตอนที่ 3
- บันทึกไฟล์
- ให้สิทธิ์ดำเนินการโดยใช้
chmod 755 crunchify.service
ขั้นตอนที่ 4
- โหลด crunchify.service โดยใช้คำสั่ง
systemctl daemon-reload
- เปิดใช้งาน crunchify.service โดยใช้คำสั่ง
systemctl enable crunchify.service
- เริ่ม crunchify.service โดยใช้คำสั่ง
systemctl start crunchify
- ตรวจสอบสถานะของ crunchify.service โดยใช้คำสั่ง
systemctl status crunchify
ขั้นตอนที่ -5
- ตอนนี้ตรวจสอบว่ากระบวนการทำงานอยู่หรือไม่ ??
- พิมพ์คำสั่ง
ps -few | grep java
ps -few | grep java
เพื่อดูกระบวนการ Java ที่ทำงานอยู่ทั้งหมด - คุณควรเห็นอะไรแบบนี้
1 2 3 |
root @ crunchify : / lib / systemd / system # ps -few | grep java root 28631 1 0 14 : 02 ? 00 : 00 : 03 / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram root 28853 28226 0 14 : 46 pts / 0 00 : 00 : 00 grep java |
นั่นหมายความว่ากระบวนการ 28631
กำลังเริ่มต้นโดยใช้สคริปต์พุ่งพรวดของคุณ คุณอาจมี ID กระบวนการที่แตกต่างกัน
จะตรวจสอบได้อย่างไรว่า systemd crunchify.service ของคุณทำงานหรือไม่?
- พยายามฆ่ากระบวนการโดยใช้
kill -9 28631
และคุณจะเห็นว่าควรสร้างกระบวนการใหม่โดยอัตโนมัติ - ในกรณีของฉัน ID กระบวนการใหม่
28887
สร้างแล้ว
1 2 3 4 |
root @ crunchify : / lib / systemd / system # kill -9 28631 root @ crunchify : / lib / systemd / system # ps -few | grep java root 28887 1 17 14 : 48 ? 00 : 00 : 00 / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram root 28900 28226 0 14 : 48 pts / 0 00 : 00 : 00 grep java |
วิดีโอ: ตัวอย่างการตั้งค่าสคริปต์พุ่งพรวด Live systemd ที่สมบูรณ์:
วิดีโอนี้มี - วิธีการตั้งค่าสคริปต์เริ่มต้น / พุ่งพรวด systemd ใน CentOS, Redhat, Ubuntu Linux OS
- วิธีรันเชลล์สคริปต์โดยอัตโนมัติเมื่อบูตเครื่องเริ่มต้น
- วิธีสร้างบริการ systemd ใน Linux (CentOS 7)
- วิธีกำหนดค่าบริการ Linux ให้เริ่มทำงานโดยอัตโนมัติ
- สคริปต์เริ่มต้นระบบ Centos 7 systemd
- สคริปต์เริ่มต้นระบบ Ubuntu
ต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ systemd หรือไม่? นี่คือแผ่นโกงสำหรับการอ้างอิงของคุณ
ฉันหวังว่าคุณจะเรียนรู้ everything about systemd command
และการตั้งค่าสคริปต์พุ่งพรวดบน Linux OS ทุกประเภท
หยุด: สำหรับระบบปฏิบัติการเวอร์ชันเก่าเท่านั้น
หากคุณใช้ Redhat, Ubuntu, CentOS เวอร์ชัน older version
คุณจะต้องมีสคริปต์ในรูปแบบนี้
- ไปที่
/etc/init
- สร้างไฟล์
crunchify.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# Run Crunchify's Java program indefinitely # description "Crunchify Java Process Restart Upstart Script" author "Crunchify.com (App Shah)" start on runlevel [ 2345 ] stop on runlevel [ ! 2345 ] respawn respawn limit 10 5 script su - root < < 'EOF' export JAVA_HOME =/ opt / java / jdk - 9 export PATH = $ PATH : $ JAVA_HOME / bin exec / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram EOF end script |
- เพียงแค่เริ่มบริการโดยใช้คำสั่ง
service crunchify start
- ทำตามขั้นตอนการตรวจสอบเดียวกับด้านบน
แจ้งให้เราทราบหากคุณพบปัญหาในการใช้งานสคริปต์พุ่งพรวดในสภาพแวดล้อมของคุณ สนุกกับวันของคุณและมีความสุขในการเข้ารหัส