ฉันต้องการสร้างบริการซึ่งรับอินพุตจากเชลล์สคริปต์และส่งคืนเอาต์พุต
ฉันควรเริ่มจากตรงไหนและจะทำอย่างไร? โปรดให้คำแนะนำทีละขั้นตอนหรืออ้างอิงถึงฉัน
ขอบคุณ
ฉันต้องการสร้างบริการซึ่งรับอินพุตจากเชลล์สคริปต์และส่งคืนเอาต์พุต
ฉันควรเริ่มจากตรงไหนและจะทำอย่างไร? โปรดให้คำแนะนำทีละขั้นตอนหรืออ้างอิงถึงฉัน
ขอบคุณ
คำตอบ:
ฉันไม่แน่ใจว่าคุณหมายถึงอะไรโดย "บริการ" คุณหมายถึงบางสิ่งที่สามารถเรียกใช้และทำงานในพื้นหลังได้หรือไม่? ถ้าเป็นเช่นนั้นความต้องการของคุณอาจเป็นที่พอใจโดยสคริปต์ Bash ที่สำรวจไฟล์สำหรับอินพุตและรับอินพุตเมื่อมันถูกพบในไฟล์ (สมมุติว่ามันจะถูกไพพ์โดยเชลล์สคริปต์ที่สร้างอินพุต) กลไกที่คุณเลือก คุณสามารถห่อการสำรวจในวงวนไม่สิ้นสุดด้วยsleep
คำสั่งและแบ็คกราวน์สคริปต์เพื่อให้ทำงานอย่างต่อเนื่องผ่านnohup ( manpage ) ที่กล่าวว่าฉันไม่แน่ใจว่าแข็งแกร่งเพียงพอสำหรับวัตถุประสงค์ของคุณส่วนใหญ่เพราะฉันไม่แน่ใจว่าสิ่งที่คุณถาม ดังนั้นลองย้อนกลับไปสองสามก้าว:
มีหลายวิธีในการเขียน daemons / services ใน Unix และคำถามของคุณควรเจาะจงมากขึ้นถ้าคุณต้องการคำแนะนำทีละขั้นตอน สถานที่ที่ดีในการเริ่มต้นอาจเป็น: คุณต้องการเขียนด้วยภาษาใด บริการนี้รับอินพุตประเภทใด สิ่งที่จะได้รับการส่งออกในรูปแบบใดและเพื่อ / ที่ / ใคร / ผู้รับ? ในระดับที่สูงขึ้น: คุณต้องการบริการสำหรับสิ่งนี้หรือไม่หรือคุณกำลังใช้ตัวประมวลผลข้อมูลแคชแบบถาวรซึ่งสามารถทำงานเป็นปฏิบัติการแบบสแตนด์อโลนได้หรือไม่? หลังมักเป็นทางเลือกที่ดีกว่าโดยเฉพาะอย่างยิ่งเมื่อเริ่มต้นจากศูนย์เนื่องจากคุณสามารถว่าจ้างปัญหาการขอร้องที่ต่อเนื่อง / พร้อมกันจำนวนมากไปยังผู้ให้บริการที่มีอยู่ส่วนหลัง (ในจินตนาการของฉันสิ่งที่คล้ายกับsqlite )
หากคุณต้องการที่จะเขียนมันในทุบตี (ซึ่งอาจจะไม่เป็นตัวเลือกที่ดีที่สุด) ผมขอแนะนำให้เริ่มต้นที่นี่ ต้องแน่ใจว่าคุณเข้าใจพื้นฐานของการฟอร์กและตรวจสอบกระบวนการของ UNIX อย่างสมบูรณ์มิฉะนั้นการเขียน daemons ที่ทำหน้าที่ตามอำเภอใจอาจเป็น "ปืนยิง" ขนาดใหญ่
Bash อย่างที่ฉันพูดไว้ก่อนหน้านี้ไม่จำเป็นต้องเป็นตัวเลือกที่ดีที่สุด Perl มีสิ่งอำนวยความสะดวกในตัวที่แข็งแกร่งสำหรับการทำสิ่งนี้ในรูปแบบของ Proc :: Daemon คำถาม SO นี้ควรให้คุณชี้ไปในทิศทางที่ถูกต้องหากคุณเลือก Perl
Python ยังมีความสามารถนี้ ตัวอย่างที่ยอมรับของภูตงูใหญ่สมบูรณ์ด้วยเวทมนตร์ดับเบิลส้อมและคำอธิบายสั้น ๆ สามารถพบได้ที่นี่
C / C ++ ยังเป็นภาษากลางสำหรับการเขียน daemon และมีคำแนะนำมากมาย ฉันชอบอันนี้แต่ประสบการณ์ของฉันในพื้นที่นั้น จำกัด กว่าภาษาอื่น ๆ ด้านบน
หากคุณต้องการเขียน daemon และเป็นโปรแกรมเมอร์ C ให้คว้าสำเนาของส่วนต่อไปนี้ไปยัง Linux Programming Interface: คู่มือการเขียนโปรแกรมระบบ Linux และ UNIX ; มันมีทั้งบทในนั้นและมีคุณค่ามาก