script không thực thi khi chạy như daemon khởi động, hoạt động tốt trong dòng lệnh


0

Tôi đã cài đặt gói python theo dõi các thay đổi tệp được gọi là khi thay đổi ( https://github.com/joh/when-changed ). Bây giờ lệnh tôi muốn chạy là:

when-changed /var/www/html/php/logfile.csv /var/www/html/php/processpayment.sh

Khi tôi sửa đổi logfile.csv, mã trong processpayment.sh sẽ được thực thi. Tuy nhiên, khi tôi đặt lệnh này trong tệp /etc/rc.local của mình và khởi động lại hệ thống, tập lệnh sẽ không thực thi khi tôi sửa đổi tệp! Tôi có 3 giả định:

  1. Công cụ khi thay đổi là tào lao, nó không hoạt động như một daemon.
  2. /etc/rc.local không phải là nơi để đặt trình nền này (Tôi đã thử đặt nó vào /etc/init/whenchanged.conf nhưng không có kết quả)
  3. daemon cần phải được gắn vào pts / O và không trong?

Để tham khảo, quá trình dưới cùng hoạt động:

root      1331  0.5  0.4 275480 17376 ?        Sl   16:14   0:04 /usr/bin/python /usr/local/bin/when-changed /var/www/html/php/logfile.csv /var/www/html/php/processpayment.sh
root      3547  7.0  0.4 267024 16868 pts/1    Sl   16:27   0:00 /usr/bin/python /usr/local/bin/when-changed /var/www/html/php/logfile.csv /var/www/html/php/processpayment.sh

Kịch bản:

#!/bin/bash
# called when logfile.csv changes
# scrapes logfile.csv and runs the mintscript
IN=$(cat logfile.csv | tail -n1 | cut -d';' -f4,6 | xargs)
arrIN=(${IN//;/ })
amount=${arrIN[0]}
address=${arrIN[1]}
node "soupcoinmintscript.js" $address $amount | tee "log"
exit 0;

Cấu hình khởi động:

/etc/init# cat whenchanged.conf 
start on startup
task
when-changed /var/www/html/php/logfile.csv 
/var/www/html/php/processpayment.sh

1
Bạn đang sử dụng bản phân phối cụ thể nào? Một số phân phối đã phản đối init.dủng hộ systemd. Ngoài ra, thật không hay khi nói đó when-changedlà chuyện tào lao. Nhà phát triển đã thực hiện nó với một loạt các yêu cầu nhất định và anh ấy sẵn sàng chia sẻ nó với bạn (hoàn toàn miễn phí). Nếu bạn cảm thấy nó không phù hợp với nhu cầu của bạn, hãy thay đổi mã và gửi yêu cầu kéo cho anh ấy. Nếu bạn không muốn làm điều đó, hãy viết mã của riêng bạn.
mtak

@mtak bạn hoàn toàn đúng, tôi chỉ hơi thất vọng một chút; -). Tôi tin rằng đó là Ubuntu nhưng tôi sẽ báo cáo cụ thể hơn sớm.
wimdetr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.