Đó là cách chính xác để vô hiệu hóa một đơn vị hẹn giờ systemd?


18

Tôi đã di chuyển thành công một số công việc định kỳ của mình sang systemd. Tôi đã làm theo một số hướng dẫn và đã thực hiện phương pháp tiêu chuẩn để tạo 3 tệp:

myjob.timer - systemd timer unit
myjob.service - systemd service unit
myjob.sh

Như bạn có thể đoán, tại một thời điểm nhất định myjob.timer được kích hoạt, nó chạy myjob.service, lần lượt thực thi myjob.sh.

Tôi có cùng một thiết lập cho tất cả các bộ tính giờ của tôi và bây giờ tôi thấy mọi thứ đều hoạt động tốt, tôi muốn tắt myjob.timer, đây chỉ là một trình kiểm tra.

Tôi chỉ làm:

systemctl --user disable myjob.timer

hoặc tôi cũng phải làm:

systemctl --user disable myjob.service

Điều chính xác để làm là gì? Tôi còn khá mới với systemd, vì vậy tôi muốn học cách làm mọi thứ theo cách phù hợp. Tôi đoán rằng việc vô hiệu hóa cả hai đơn vị là đúng để giữ cho hệ thống không có hành lý quá tải.

Câu trả lời:


18

nếu myjob.servicekhông chứa [Install]khối thì chỉ cần tắt bộ hẹn giờ là đủ. Đồng hồ bấm giờ là thứ duy nhất bắt đầu .servicetập tin, vì vậy với người .timerkhuyết tật, không có gì sẽ bắt đầu .servicetập tin.

Cũng nhớ chạy systemctl --user stop myjob.timer. Vô hiệu hóa bộ hẹn giờ ngăn không cho nó khởi động trong lần khởi động tiếp theo, nhưng nó không dừng bộ hẹn giờ hiện đang chạy.


Tôi có một khối [Cài đặt] trong mỗi đơn vị hẹn giờ của mình. Nó có một mục, nói 'WantedBy = default.target'. Tôi đã nhận được điều này từ các hướng dẫn tôi làm theo. Tôi có thể thoát khỏi khối [Cài đặt] hoàn toàn không?
bitofagoob

1
ĐỒNG Ý. Tôi đã đọc về phần [Cài đặt] và tôi nghĩ rằng WantedBy = default.target chỉ ở đó để đảm bảo rằng thiết bị, khi được bật, được đưa vào hoạt động trong bất kỳ phiên khởi động bình thường nào (cả người dùng hoặc đồ họa). Tôi sẽ lấy lời khuyên của Mark Stosberg và chỉ vô hiệu hóa đơn vị hẹn giờ. Tôi cũng sẽ đánh dấu câu trả lời của anh ấy là giải pháp. Chúc mừng Mark!
bitofagoob

2
Bạn muốn phần [Cài đặt] trên các đơn vị hẹn giờ để chúng được khởi động khi khởi động. Thông thường WantedBy=timers.target. Bạn chỉ cần một [Install]phần cho một dịch vụ nếu bạn muốn dịch vụ được bắt đầu khi khởi động, có vẻ như bạn không muốn trong trường hợp này.
Mark Stosberg

1
Cảm ơn. Tôi đã xóa phần [Cài đặt] khỏi đơn vị dịch vụ và thay đổi phần [Cài đặt] trong bộ đếm thời gian của tôi thành WantedBy = timers.target.
bitofagoob
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.