Làm cách nào để bắt đầu quy trình xem cho tập lệnh bash gửi thông báo? (Ubuntu 13.04)


2

Tôi đã viết một tập lệnh bash theo dõi đầu ra sensors và sử dụng notify-sendđể cảnh báo tôi khi máy tính xách tay của tôi quá nóng. Tôi bắt đầu tập lệnh với watch -n 15 fullscriptname và cũng đã thêm dòng này vào/etc/rc.local

Nó hoạt động như bình thường khi tôi khởi động nó từ thiết bị đầu cuối và quá trình cũng đang chạy sau khi khởi động. Tuy nhiên, sau đó các thông báo không hiển thị. Tôi giả sử đó là bởi vì RC.local được thực thi bởi root.

(Tôi cũng đã cố gắng thêm nó vào Ứng dụng khởi động thông qua Unity, nhưng điều này cũng không hoạt động).

Vì vậy, câu hỏi của tôi: Có cách nào để bắt đầu một quá trình như một người dùng? Cách thích hợp để tự động bắt đầu một tập lệnh như vậy (tôi sử dụng tệp cấu hình nào)?


Bạn có thể sử dụng suđể thực thi một lệnh như một người dùng khác, nhưng đối với trường hợp sử dụng của bạn, câu trả lời của terdon là cách để đi.
n.st

Câu trả lời:


0

Cách dễ nhất sẽ là cronbắt đầu nó. Chạy crontab -esẽ mở crontab của bạn trong trình chỉnh sửa mặc định của bạn, thêm dòng này vào nó, lưu và đóng nó:

@reboot watch -n 15 /path/to/script

Một tùy chọn khác sẽ được thêm watch -n 15 /path/to/scriptvào ~/.Xsessiontệp của bạn nhưng tôi không chắc nếu Ubuntu vẫn tải nó.


hm, tôi đã nhận được quy trình xem hiện đang chạy với đúng người dùng (sau khi đặt TERM = dumb cron không còn gửi thư lỗi). Nhưng bằng cách nào đó các thông báo không đến được máy tính để bàn của tôi. Dù sao, cảm ơn vì gợi ý với crontab
ddd

@ndldd nắm bắt bất kỳ lỗi nào được tạo ra bởi cron : @reboot watch -n 15 /path/to/script 2>/tmp/error. Bằng cách đó bạn có thể thấy những gì sai.
terdon

Tôi đã cài đặt postfix cho localmail và tôi nhận được Email từ Cron: 'Lỗi mở terminal: không xác định.' nhưng tôi nghĩ rằng tôi đã sửa nó ngay bây giờ vì tôi không còn nhận được thư lỗi và quá trình chạy. Vấn đề bây giờ là với chính tập lệnh nếu tôi chạy thủ công trong nền bằng cách nối thêm '&' các thông báo cũng không được hiển thị. chỉnh sửa: Chỉ cần tìm một giải pháp khả thi: Commandlinefu.com/commands/view/6167/NH
ddd

Vâng, cuối cùng tôi đã làm việc, cảm ơn vì sự giúp đỡ, tôi đã thêm SHELL = / bin / bash HIỂN THỊ =: 0,0 XAUTHORITY = ~ / .Xmasterity TERM = cumb phía trên dòng crontab.
ddd
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.