Điểm:1

Chạy chương trình từ tập lệnh khi tiếp tục tạm dừng

lá cờ us

Tôi cố gắng chạy chương trình RealTimeSync khi tiếp tục hệ thống từ chế độ ngủ bằng cách sử dụng tập lệnh nằm trong /lib/systemd/system-ngủ/ trong tập tin RealTimeSync_kill_suspend.sh với các nội dung sau:

#!/bin/sh

trường hợp $1 trong
        trước)
                echo "$(date) - $1: Killing RealTimeSync" >> /home/bart/Applications/FreeFileSync/suspend_resume.log
                giết -9 `ps -aux | pgrep RealTimeSync`
                lối ra
                ;;
        bưu kiện)
                echo "$(date) - $1: Gọi tập lệnh tiếp tục RealTimeSync" >> /home/bart/Applications/FreeFileSync/suspend_resume.log
                sh /home/bart/Applications/FreeFileSync/RealTimeSync_resume.sh
;;
thoát hiểm

Tôi biết rằng nó thực thi tập lệnh con RealTimeSync_resume.sh với các nội dung sau:

#!/bin/sh

echo "$(date) - Running RealTimeSync" >> /home/bart/Applications/FreeFileSync/suspend_resume.log

/home/bart/Applications/FreeFileSync/RealTimeSync /home/bart/Documents/Documents_backup.ffs_real &

echo "$(date) - RealTimeSync sẽ chạy" >> /home/bart/Applications/FreeFileSync/suspend_resume.log

lối ra

vì nó xuống dòng sau cả hai tiếng vang tuyên bố trong RealTimeSync_kill_suspend.sh kịch bản và dòng sau cả hai tiếng vang tuyên bố trong RealTimeSync_resume.sh tập lệnh con vào một tệp nhật ký Susume_resume.log:

czw, 5 sie 2021, 16:55:50 CEST - trước: Killing RealTimeSync
czw, 5 sie 2021, 16:55:58 CEST - bài đăng: Gọi tập lệnh tiếp tục RealTimeSync
czw, 5 sie 2021, 16:55:58 CEST - Chạy RealTimeSync
czw, 5 sie 2021, 16:56:28 CEST - RealTimeSync sẽ chạy

Nhưng khi tôi tìm kiếm quá trình với ps-aux | grep RealTimeSync nó không hiển thị bất kỳ kết quả phù hợp nào, chỉ:

bart 31262 0.0 0.0 12252 2612 điểm/0 S+ 17:38 0:00 grep --color=auto RealTimeSync

Khi tôi chạy tập lệnh con với sh /home/bart/Applications/FreeFileSync/RealTimeSync_resume.sh Tôi nhận được quy trình chính xác đang chạy với ps-aux | grep RealTimeSync:

bart 31066 0,0 0,0 212 68 điểm/0 S 17:37 0:00 /home/bart/Applications/FreeFileSync/RealTimeSync /home/bart/Documents/Documents_backup.ffs_real
bart 31071 0,3 0,1 442428 41260 điểm/0 Sl 17:37 0:00 /home/bart/Applications/FreeFileSync/Bin/RealTimeSync_x86_64 /home/bart/Documents/Documents_backup.ffs_real
bart 31262 0.0 0.0 12252 2612 điểm/0 S+ 17:38 0:00 grep --color=auto RealTimeSync

Tất cả các tập tin được đề cập có -rwxr-xr-x quyền hạn.

Sau khi tìm kiếm trên các diễn đàn, tôi nhận thấy rằng RealTimeSync cần một số dịch vụ được kích hoạt khi đăng nhập không khả dụng, ví dụ: những người gặp sự cố với việc chạy tập lệnh bắt đầu đồng bộ cần máy chủ X để kết nối với:

khai báo -x HIỂN THỊ = ": 0,0"
khai báo -x XAUTHORITY="/home/<your user>/.Xmasterity"
đồng bộ VertEdgeScroll=1 VertTwoFingerScroll=1 HorizTwoFingerScroll=1 HorizEdgeScroll=1

từ chủ đề diễn đàn này: https://ubuntuforums.org/showthread.php?t=2380045

Tôi sẽ biết ơn nếu được giúp đỡ.

CHỈNH SỬA 1

Tôi thấy rằng "FreeFileSync và ReadTimeSync cần quyền truy cập vào màn hình X11 đồ họa, vì vậy chúng không thể chạy qua chế độ hệ thống. Ở chế độ người dùng, systemd biết về phiên đồ họa của người dùng và sử dụng nó." Vì vậy, có 2 giải pháp tiềm năng:

Một trong hai đề cập ở trên, mã hóa cứng TRƯNG BÀYXAUTHORITY, không được khuyến khích vì giá trị HIỂN THỊ có thể khác nhau từ phiên này sang phiên khác.

Hoặc chạy dưới dạng dịch vụ người dùng, không phải dịch vụ hệ thống, vì màn hình được khởi tạo cho người dùng.

Điều này tôi đã tìm thấy ở đây, khắc phục sự cố khi chạy FreeFileSync dưới dạng dịch vụ hệ thống: https://unix.stackexchange.com/questions/529115/system-service-error-unable-to-initialize-gtk-is-display-set-properly

Thật không may, tôi gặp sự cố khi triển khai các giải pháp này, tôi rất biết ơn nếu được trợ giúp.

CHỈNH SỬA 2

Ok, tôi đóng đinh nó! Bây giờ tôi chạy RealTimeSync từ tập lệnh chính, mặc dù tôi đoán điều này không tạo ra bất kỳ sự khác biệt nào, điều quan trọng là khởi tạo 'HIỂN THỊ' như sau:

#!/bin/sh

trường hợp $1 trong
        trước)
                echo "$(date) - $1: Killing RealTimeSync" >> /home/bart/Applications/FreeFileSync/suspend_resume.log
                giết -9 `ps -aux | pgrep RealTimeSync`
                lối ra
                ;;
        bưu kiện)
                echo "$(date) - Gọi tập lệnh tiếp tục RealTimeSync" >> /home/bart/Applications/FreeFileSync/suspend_resume.log
                env DISPLAY=:1 sudo -u bart /home/bart/Applications/FreeFileSync/RealTimeSync /home/bart/Documents/Documents_backup.ffs_real
;;
thoát hiểm

Và đặt chủ sở hữu của tập lệnh này thành root: chown root:root <script_name>

Giải pháp là từ đây: bắt đầu tập lệnh sau khi tiếp tục với tư cách là người dùng đã đăng nhập (không phải root)

Theo tôi hiểu, đây là một cách giải quyết hơn là giải pháp thích hợp như mã hóa cứng TRƯNG BÀY có thể gây ra vấn đề, nhưng tạm thời hoạt động. Trong trường hợp bất kỳ ai biết cách chạy đúng cách này với tư cách là người dùng chưa root, tôi rất biết ơn về bất kỳ gợi ý nào.

Đă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.