Được rồi, đã lâu rồi, mặc dù cuối cùng tôi cũng có thời gian để ngồi xuống và viết ra giải pháp của mình. Đây là lần đầu tiên tôi viết một kịch bản bash nên nó rất thú vị.
Cuối cùng, tôi đã sử dụng kết hợp 3 tập lệnh, 2 trong số đó được cấp quyền root trong tệp sudoers. Có lẽ có một cách tốt hơn để làm điều này; tuy nhiên, tôi chỉ cần đặt đường dẫn đầy đủ tới tập lệnh.
sudo visudo
Sau đó, dưới tab #includedir /etc/sudoers.d
Tên người dùng ALL=NOPASSWD PATH/AutoStartMiner.sh, PATH/TeamRedMiner_Config.sh, Đường dẫn/teamredminer
Điều này sẽ tạo tiền đề cho 3 tập lệnh lần lượt hoạt động mà không gặp sự cố.
Để bắt đầu khởi động AutoStartMiner.sh trong cửa sổ terminal, tôi đã sử dụng trình giả lập gnome-terminal. Đối với những người triển khai một cái gì đó tương tự, bạn sẽ cần cài đặt trình giả lập qua:
Sudo apt cài đặt gnome-terminal
Sau đó, tôi đã sử dụng trung tâm cấu hình LXQT và điều hướng đến cài đặt phiên. Trong cài đặt phiên, tôi đặt tập lệnh StartTerminalASM.sh để thực thi sau khi khay hệ thống được tải. Điều này được thực hiện bằng cách nhấn thêm, đặt tên cho chức năng tự khởi động, dán toàn bộ đường dẫn tới tập lệnh, bao gồm cả tập lệnh, rồi nhấp vào hộp có nội dung tải sau khay hệ thống. Điều quan trọng cần lưu ý là tập lệnh đầu tiên này không cần chạy với các đặc quyền nâng cao, vì vậy phương pháp này hoạt động. Chức năng tự khởi động của LXQT không tự động chạy các tập lệnh yêu cầu đặc quyền nâng cao.
Đây là nội dung của tập lệnh đầu tiên: StartTerminalASM.sh
#!/bin/bash
gnome-terminal --command="bash -c 'sudo /home/userName/Scripts/AutoStartMiner.sh; $SHELL'"
Tập lệnh này chỉ cần khởi động AutoStartMiner.sh trong thiết bị đầu cuối gnome. Vì chúng tôi đã thêm tập lệnh này vào tệp sudoers trước đó, nên lệnh sudo sẽ thực thi mà không cần nhắc mật khẩu.
Đây là tập lệnh thứ hai: AutoStartMiner.sh
#!/bin/bash
# Nhắc người dùng với thông tin.
echo "Công cụ khai thác sẽ bắt đầu sau 60 giây."
echo "Nhấn s + enter để dừng quá trình và tiếp tục hoạt động bình thường."
# Xóa biến.
đầu vào = "a"
đặt giây = 60
#Đang chờ đầu vào của người dùng và đếm ngược.
trong khi [ $seconds -gt 0 ]; làm
printf "\r........."$giây
đọc -s -t 1 đầu vào
để "giây-=1"
nếu [ "$input" = "s" ] || [ "$input" = "S" ]; sau đó
nghỉ
fi
xong
tiếng vang
#Bắt đầu lựa chọn người dùng
nếu [ "$input" = "s" ] || [ "$input" = "S" ]; sau đó
echo "Tiếp tục hoạt động bình thường."
ngủ 2
khác
echo "Bắt đầu khai thác."
ngủ 2
sudo /home/userName/Documents/Crypto/Miners/TeamRedMiner/teamredminer-v0.8.4-linux/TeamRedMiner_Config.sh
fi
Vì vậy, điều này về cơ bản giống như tôi đã mô tả trong câu hỏi ban đầu. Vấn đề duy nhất là khi thời gian giảm xuống dưới 10 giây, vì lý do nào đó, số 0 xuất hiện ở vị trí 1 và các số đếm ngược ở vị trí 10 (ví dụ: 10, 90, 80, 70, ..., v.v. ). Có lẽ một cái gì đó tôi không hiểu đầy đủ về bản inf
tuyên bố mà tôi đã thực hiện. Tương tự như trên, các sudo
lệnh ở đây không yêu cầu mật khẩu do dòng được tạo trong sudoers.
Cuối cùng, nó thực thi tập lệnh thứ ba: TeamRedMiner_Config.sh
Tập lệnh này chỉ đơn giản là thiết lập các tham số để công cụ khai thác chạy. Nó cũng thực thi công cụ khai thác với sudo
, đó là lý do tại sao chúng tôi thêm lệnh thứ ba vào sudoers để đảm bảo không cần nhắc để tự khởi động công cụ khai thác.
Vì vậy, trừ khi người dùng nhắc hệ thống dừng để công cụ khai thác bắt đầu, công cụ khai thác sẽ thực thi mà không cần bất kỳ đầu vào nào. Điều này cực kỳ hữu ích vì nó giúp tôi đỡ phải đau đầu nếu kernel xảy ra sự cố. Tôi chỉ cần nhấn nút nguồn và bùng nổ, công cụ khai thác sẽ chạy sau một phút. Nếu tôi thực sự muốn tự động hóa nó, tôi có thể tạo một servo nhỏ để nhấn nút hoặc thiết lập đánh thức trên lan.
Đó là tất cả những gì đang được nói, đó là vấn đề mới nhất. Sau khi cập nhật lên Linux kernel 5.11.0-27-generic, bộ điều hợp không dây của tôi từ chối kết nối với mạng của tôi, mặc dù ít nhất nó đã được hệ thống nhận ra.
Cảm ơn mọi người đã đóng góp ý kiến và tôi hy vọng một ngày nào đó điều này sẽ giúp ích cho những người mới bắt đầu như tôi.