สร้างบริการเชลล์ใน Ubuntu


-1

ฉันต้องการสร้างบริการซึ่งรับอินพุตจากเชลล์สคริปต์และส่งคืนเอาต์พุต

ฉันควรเริ่มจากตรงไหนและจะทำอย่างไร? โปรดให้คำแนะนำทีละขั้นตอนหรืออ้างอิงถึงฉัน

ขอบคุณ

คำตอบ:


1

ฉันไม่แน่ใจว่าคุณหมายถึงอะไรโดย "บริการ" คุณหมายถึงบางสิ่งที่สามารถเรียกใช้และทำงานในพื้นหลังได้หรือไม่? ถ้าเป็นเช่นนั้นความต้องการของคุณอาจเป็นที่พอใจโดยสคริปต์ Bash ที่สำรวจไฟล์สำหรับอินพุตและรับอินพุตเมื่อมันถูกพบในไฟล์ (สมมุติว่ามันจะถูกไพพ์โดยเชลล์สคริปต์ที่สร้างอินพุต) กลไกที่คุณเลือก คุณสามารถห่อการสำรวจในวงวนไม่สิ้นสุดด้วยsleepคำสั่งและแบ็คกราวน์สคริปต์เพื่อให้ทำงานอย่างต่อเนื่องผ่านnohup ( manpage ) ที่กล่าวว่าฉันไม่แน่ใจว่าแข็งแกร่งเพียงพอสำหรับวัตถุประสงค์ของคุณส่วนใหญ่เพราะฉันไม่แน่ใจว่าสิ่งที่คุณถาม ดังนั้นลองย้อนกลับไปสองสามก้าว:

มีหลายวิธีในการเขียน daemons / services ใน Unix และคำถามของคุณควรเจาะจงมากขึ้นถ้าคุณต้องการคำแนะนำทีละขั้นตอน สถานที่ที่ดีในการเริ่มต้นอาจเป็น: คุณต้องการเขียนด้วยภาษาใด บริการนี้รับอินพุตประเภทใด สิ่งที่จะได้รับการส่งออกในรูปแบบใดและเพื่อ / ที่ / ใคร / ผู้รับ? ในระดับที่สูงขึ้น: คุณต้องการบริการสำหรับสิ่งนี้หรือไม่หรือคุณกำลังใช้ตัวประมวลผลข้อมูลแคชแบบถาวรซึ่งสามารถทำงานเป็นปฏิบัติการแบบสแตนด์อโลนได้หรือไม่? หลังมักเป็นทางเลือกที่ดีกว่าโดยเฉพาะอย่างยิ่งเมื่อเริ่มต้นจากศูนย์เนื่องจากคุณสามารถว่าจ้างปัญหาการขอร้องที่ต่อเนื่อง / พร้อมกันจำนวนมากไปยังผู้ให้บริการที่มีอยู่ส่วนหลัง (ในจินตนาการของฉันสิ่งที่คล้ายกับsqlite )

หากคุณต้องการที่จะเขียนมันในทุบตี (ซึ่งอาจจะไม่เป็นตัวเลือกที่ดีที่สุด) ผมขอแนะนำให้เริ่มต้นที่นี่ ต้องแน่ใจว่าคุณเข้าใจพื้นฐานของการฟอร์กและตรวจสอบกระบวนการของ UNIX อย่างสมบูรณ์มิฉะนั้นการเขียน daemons ที่ทำหน้าที่ตามอำเภอใจอาจเป็น "ปืนยิง" ขนาดใหญ่

Bash อย่างที่ฉันพูดไว้ก่อนหน้านี้ไม่จำเป็นต้องเป็นตัวเลือกที่ดีที่สุด Perl มีสิ่งอำนวยความสะดวกในตัวที่แข็งแกร่งสำหรับการทำสิ่งนี้ในรูปแบบของ Proc :: Daemon คำถาม SO นี้ควรให้คุณชี้ไปในทิศทางที่ถูกต้องหากคุณเลือก Perl

Python ยังมีความสามารถนี้ ตัวอย่างที่ยอมรับของภูตงูใหญ่สมบูรณ์ด้วยเวทมนตร์ดับเบิลส้อมและคำอธิบายสั้น ๆ สามารถพบได้ที่นี่

C / C ++ ยังเป็นภาษากลางสำหรับการเขียน daemon และมีคำแนะนำมากมาย ฉันชอบอันนี้แต่ประสบการณ์ของฉันในพื้นที่นั้น จำกัด กว่าภาษาอื่น ๆ ด้านบน

ทั้งหมดที่กล่าวมาข้างคำถามนี้อาจจะเป็นในStackoverflow


ฉันไม่ได้โยกย้ายคำถามเพราะคำตอบของคุณแสดงว่ามันไม่ได้กำหนดไว้อย่างชัดเจนว่า OP พยายามทำอะไร ดังนั้นไม่ว่าเขาจะไปที่ SO โดยเฉพาะเจาะจงมากขึ้น (ใหม่) หรือการแก้ปัญหาคือวิธีการเขียนสคริปต์ซึ่งจะดีสำหรับ SU หากคุณยังไม่เห็นด้วยอย่าลังเลที่จะตั้งค่าสถานะอีกครั้ง
Ivo Flipse

0

หากคุณต้องการเขียน daemon และเป็นโปรแกรมเมอร์ C ให้คว้าสำเนาของส่วนต่อไปนี้ไปยัง Linux Programming Interface: คู่มือการเขียนโปรแกรมระบบ Linux และ UNIX ; มันมีทั้งบทในนั้นและมีคุณค่ามาก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.