Tôi hiểu rằng có hoặc có thể có những câu hỏi tương tự ở đây, nhưng câu hỏi này không liên quan đến nhà tù lửa
Firefox cũng không có bất kỳ sự chậm trễ nào khi bắt đầu.
Thông tin hệ điều hành:
Xubfox 20.04
DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS"
NAME="Ubuntu"
VERSION="20.04.3 LTS (Fossa Fossa)"
VERSION_ID="20.04"
$ uname -a
Linux terrance-ubuntu 5.11.0-40-generic #44~20.04.2-Ubuntu SMP Thứ ba ngày 26 tháng 10 18:07:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Tôi chạy một kịch bản từ một crontab
điều đó sẽ khởi chạy trang đăng nhập ADP của tôi và bấm giờ cho tôi vào và ra vào những thời điểm cụ thể trong ngày. Điều này từng hoạt động hoàn hảo cho đến khi Firefox 94 được phát hành. Bây giờ, tôi hiểu rằng đối với điều khiển từ xa, Mozilla đã quyết định không sử dụng X11 nữa mà thay vào đó là D-Bus. Đối với cuộc sống của tôi, tôi không thể hiểu ý nghĩa của việc sử dụng D-Bus thay vì X11, ngoài việc họ cho rằng nó đơn giản hơn để sử dụng. Tôi cho rằng điều này có thể là do Wayland mà tôi không sử dụng.
Nếu tôi chạy tập lệnh sau từ thiết bị đầu cuối dòng lệnh vào những thời điểm cụ thể thì nó hoạt động hoàn hảo, nhưng nếu tôi chạy tập lệnh từ crontab
Tôi nhận được thông báo sau:
Kịch bản (vẫn là một công việc đang được tiến hành):
#!/bin/bash
#Chức năng này kiểm tra đường dẫn của ứng dụng trên máy Mac.
đường dẫn thực1() {
[[ $1 = /* ]] && echo "$1" || tiếng vang "$PWD/${1#./}"
}
# Hàm này khớp với ngày trong tuần và trả về 0 nếu khớp, 1 nếu cuối tuần.
hàm dowcheck(){
trường hợp " ${daysofweek[@]} " trong
*\ ${DOW}\ *)
trả về 0;;
*)
trả lại 1;;
esac
}
# Hàm này khớp nếu thời gian vào hoặc ra của đồng hồ khớp với 0 hoặc 1 nếu không.
chức năng kiểm tra thời gian(){
trường hợp " ${timesofday[@]} " trong
*\ ${HM}\ *)
trả về 0;;
*)
trả lại 1;;
esac
}
#Chức năng này so khớp ngày nghỉ với ngày hôm nay. Nếu kết quả khớp trả về 0 nghĩa là ngày nghỉ, 1 nghĩa là không phải ngày nghỉ.
hàm daysoffcheck(){
trường hợp " ${daysoff[@]} " trong
*\ ${daymdy}\ *)
trả về 0;;
*)
trả lại 1;;
esac
}
#Kiểm tra loại hệ điều hành.
OS_TYPE=$(uname -a | awk '{print $1}')
nếu [[ ${OS_TYPE} == "Linux" ]]; sau đó
OS=$(grep -i ^name= /etc/*release | awk -F= '{print $2}' | sed 's/\"//g')
khác
OS=$(system_profiler SPSoftwareDataType | awk '/Phiên bản hệ thống:/ {print $3}')
fi
nếu [ "${OS}" = "CentOS Linux" ]; sau đó
Hệ điều hành = Fedora
fi
# Đặt thư mục làm việc và đặt Hiển thị để chạy trong CRONJOB.
trường hợp $OS trong
macOS) apppath=/Applications/Firefox.app/Contents/MacOS
export DISPLAY="/private/tmp/com.apple.launchd.*/org.macosforge.xquartz:0"
PWD=$(tên thư mục $(đường dẫn thực1 $(mà $0)));;
*) apppath=/usr/bin
DM=$(/usr/bin/basename $(/bin/cat /etc/X11/default-display-manager))
trường hợp $DM trong
lightdm)
xuất HIỂN THỊ=:0;;
gdm3)
grep -E "# AutomaticLogin|AutomaticLoginEnable = false" /etc/$DM/*.conf >/dev/null && export DISPLAY=:1 || xuất HIỂN THỊ=:0;;
*);;
esac
PWD=$(tên thư mục $(đường dẫn thực $(mà $0)));;
esac
#Đặt biến cho hàm khớp.
DOW=$(ngày +%a)
HM=$(ngày +%H:%M)
daymdy=$(ngày +%m-%d-%Y)
#Nếu hôm nay mới hơn ngày nghỉ, hãy xóa ngày nghỉ cuối cùng.
if [[ "${daymdy}" > "$(head -1 $PWD/daysoff.txt)" ]]; sau đó
sed -i '1d' $PWD/daysoff.txt
fi
#Khai báo mảng.
khai báo -a daysofweek=('Mon' 'Tue' 'Wed' 'Thu' 'Fri')
khai báo -a timesofday=('08:00' '12:00' '12:30' '16:30')
khai báo -a inout=('vào' 'ra ngoài ăn trưa' 'vào từ bữa trưa' 'ra ngoài trong ngày')
khai báo -a daysoff=($(cat $PWD/daysoff.txt))
# Vào hoặc ra.
cho tôi trong "${!timesofday[@]}"; làm
nếu [[ "${timesofday[$i]}" == "${HM}" ]]; sau đó
inorout="${inout[$i]}";
có;
xong
#Run các hàm và trả về 0 hoặc 1.
ngày nghỉ kiểm tra
doff=$?
kiểm tra lại
dow=$?
xem thời gian
thời gian = $?
#Hoàn tất và gửi thông tin hoặc khởi chạy Firefox nếu cần.
nếu [[ $doff != "1" ]]; sau đó
echo "Hôm nay là ngày nghỉ! Tại sao bạn lại cố bấm giờ?"
thoát 1
elif [[ $dow != "0" ]]; sau đó
echo "Hôm nay là cuối tuần! Tại sao bạn lại cố bấm giờ?"
thoát 1
elif [[ $time != "0" ]]; sau đó
echo "Đó là $DOW ở mức $HM. Chưa đến lúc bấm giờ vào hoặc ra."
thoát 1
khác
echo "Đó là ${HM}. Đã hết giờ ${inorout}." | thư -s "Đồng hồ thời gian" [email protected]
echo "Đó là ${HM}. Đã hết giờ ${inorout}." | mail -s "Đồng hồ thời gian" [email protected]
xdotool mousemove --sync 677 1011
$apppath/firefox --new-tab https://workforcenow.adp.com/workforcenow/login.html &
$PWD/clock_in_out.bsh
đợi đã
fi
Nếu bất cứ ai có bất kỳ ý tưởng nào mà tôi có thể làm cho Firefox hoạt động với D-Bus giống như với X11 trước phiên bản 94, tôi sẽ đánh giá rất cao điều đó!