Tôi gặp vấn đề khi tạo một tập lệnh mới bắt đầu sẽ gọi tập lệnh nhiều lần, khiến IRCd của tôi sinh ra khoảng 8 lần hoặc lâu hơn. Để khắc phục điều này, tôi đã sử dụng start-stop-daemon:
description "IRC Daemon Upstart Script"
start on startup
start on runlevel [2345]
stop on runlevel [016]
respawn
nice -5
exec start-stop-daemon --start --chuid ircuser --chdir /home/ircuser/inspircd/run --exec /home/ircuser/inspircd/run/bin/inspircd -- --config=/home/ircuser/inspircd/run/conf/inspircd.conf
Điều này hoạt động chính xác như tôi muốn, NGOẠI TRỪ rằng:
stop ircd
nói rằng nó dừng nó, nhưng Inspircd vẫn đang chạy sau đó.
Có cách nào tốt hơn là sử dụng start-stop-daemon sẽ ngăn tập lệnh mở 8 trường hợp, hoặc có cách nào để tôi có thể làm cho nó tương thích với start-stop-daemon không?
expect fork
khắc phục vấn đề. Tuy nhiên, tôi vẫn không thể gọi 'dừng ircd' và dừng tập lệnh. Tuy nhiên, tôi sẽ quản lý mà không có nó (ps aux, kill), nhưng nếu bạn có thể sửa đổi câu trả lời của mình để bao gồm một cách để làm điều đó, tôi sẽ là một người dùng Ubuntu rất hạnh phúc;)