Điểm:1

Công việc Crontab chỉ hoạt động một lần

lá cờ fi

Tôi đã tạo 60 crontab công việc để chạy con trăn kịch bản mỗi thứ hai và các tập lệnh python nó chỉ là một bản thử nghiệm và nó chỉ chứa những thứ sau:

nhập thông báo2
từ datetime nhập datetime

thông báo2.init('')

n = notify2.Notification('test', datetime.now().strftime('%I:%M:%S'))
n.set_timeout(1000)
n.show()

và công việc crontab là:

* * * * * HIỂN THỊ=':0' XAUTHORITY='/run/user/1000/gdm/Xmasterity' python3 /path/to/my/script.py
* * * * * ( ngủ 1 && DISPLAY=':0' XAUTHORITY='/run/user/1000/gdm/Xmasterity' python3 /path/to/my/script.py )
* * * * * ( ngủ 2 && DISPLAY=':0' XAUTHORITY='/run/user/1000/gdm/Xmasterity' python3 /path/to/my/script.py )
.
.
.
.
.

lần đầu tiên đợi 1 phút và bắt đầu chạy chúng, nhưng không phải tất cả chúng sẽ được thực thi và chúng sẽ không bao giờ được thực thi nữa.

Tôi thêm một công việc crontab để kiểm tra xem nó có hoạt động không (* * * * * env > /home/hadi/Desktop/env.output) và làm việc tốt. Đây là nội dung tập tin đầu ra:

POWERSHELL_TELEMETRY_OPTOUT=1
DOTNET_CLI_TELEMETRY_OPTOUT=1
HOME=/nhà/hadi
COMMAND_NOT_FOUND_INSTALL_PROMPT=1
LOGNAME=hadi
ĐƯỜNG=/usr/bin:/bin
LANG=en_US.UTF-8
VỎ =/bin/sh
Java_HOME=/usr/lib/jvm/jdk-15.0.2
NKT=/nhà/hadi

Vì vậy, tôi đoán vấn đề là do thông báo, làm cách nào để khắc phục điều này?

và một điều nữa, HIỂN THỊ=':0' đôi khi tôi nên đặt nó thành 1 không phải 0 Tôi không biết tại sao

lá cờ za
Bạn không nên chạy 60 cronjob. Nếu bạn không thể làm điều đó bằng Python, hãy bắt đầu một tập lệnh, tập lệnh này sẽ bắt đầu 60 công việc (ví dụ: bằng một vòng lặp).Tốt hơn: Đừng khởi động nó bằng cron, nhưng xinitrc, hãy tiếp tục chạy và tạm dừng ở đó trong 1 giây và khởi động lại công việc nếu thất bại.
HaDi AyOuB avatar
lá cờ fi
điều đó nghĩa là gì? @userunknown
HaDi AyOuB avatar
lá cờ fi
Tôi muốn cùng một tập lệnh được thực thi trong mỗi giây. Nếu tôi sử dụng một vòng lặp, quá trình thực thi sẽ chặn vòng lặp cho đến khi thực hiện xong công việc hiện tại
lá cờ za
Không, bạn có thể bắt đầu lệnh cốt lõi trong nền.
HaDi AyOuB avatar
lá cờ fi
Ok, làm thế nào để làm điều đó? bạn có thể giải thích thêm xin vui lòng?
Điểm:1
lá cờ za

Với hậu tố &, bạn có thể bắt đầu tập lệnh python của mình ở chế độ nền. Ngay cả khi một phiên bản bị chặn và bị treo vĩnh viễn hoặc kết thúc trong một phần nhỏ của giây, công việc tiếp theo sẽ bắt đầu sau một giây.

#!/bin/bash

trong khi đúng 
làm
  ngủ 1
  python3 /path/to/my/script.py &
xong 

Cron không phù hợp với thời gian tạo hạt tốt hơn phút. Bộ hẹn giờ systemd có thể sử dụng để tạo hạt mịn hơn, nhưng nếu bạn hoàn toàn không muốn hạn chế thời gian, công việc chỉ nên được bắt đầu khi thích hợp trong quy trình khởi động.

Vì mã của bạn sử dụng DISPLAY=:0, nó có thể được bắt đầu dưới dạng đơn vị systemd, tùy thuộc vào graphics.target, để tránh gọi nó, trước khi hệ thống đồ họa hoạt động.

Tập lệnh lặp có thể tích lũy lượng chênh lệch thời gian lớn hơn theo thời gian và 3597 lần mỗi giờ thay vì 3600, nhưng có thể "khoảng một lần mỗi giây" là đủ tốt. Nếu không, bạn phải tự đo thời gian và tự sửa.

Chẳng hạn, giới thiệu tốt về systemd có sẵn trên YT.

HaDi AyOuB avatar
lá cờ fi
nếu tôi thực thi tập lệnh python3 của mình trong một vòng lặp và tập lệnh này sử dụng mô-đun `request`, thì vòng lặp sẽ bị chặn cho đến khi tập lệnh kết thúc. Tôi muốn thực thi chính xác cùng một tập lệnh trong từng giây. Điều đó có khả thi không?
lá cờ za
Tôi không biết Python, vì vậy tôi không biết mô-đun yêu cầu và không biết cách kiểm tra nó. IMHO, nếu con trăn được bắt đầu như một chuỗi, nó sẽ không thể chặn thứ gì đó, bất kể điều gì và vòng lặp sẽ tiếp tục. Bạn có thể cung cấp tập lệnh python tối giản để gọi trong vòng lặp để chứng minh quan điểm của mình không?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.