Înțeleg că există sau pot exista întrebări similare aici, dar aceasta nu se referă la închisoare de foc
nici Firefox nu are întârzieri la pornire.
Informații despre sistemul de operare:
Xubuntu 20.04
DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS"
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
VERSION_ID="20.04"
$ uname -a
Linux terrance-ubuntu 5.11.0-40-generic #44~20.04.2-Ubuntu SMP Mar 26 oct 18:07:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Rulez un script de la a crontab
care va lansa pagina mea de conectare ADP și mă va semnaliza intrarea și ieșirea la anumite ore ale zilei. Acest lucru a funcționat impecabil până când a fost lansat Firefox 94. Acum, înțeleg că, pentru distanță, Mozilla a decis să nu mai folosească X11, ci D-Bus. Pentru viața mea, nu pot să-mi dau seama ce înseamnă folosirea D-Bus în loc de X11, cu excepția faptului că ei susțin că este mai simplu de utilizat. Presupun că acest lucru se poate datora lui Wayland, pe care nu îl folosesc.
Dacă rulez următorul script de la un terminal de linie de comandă la anumite momente, funcționează perfect, dar dacă rulez scriptul de la crontab
Primesc următorul mesaj:
Scenariul (încă o lucrare în curs):
#!/bin/bash
#Această funcție verifică calea aplicației pe un Mac.
realpath1() {
[[ $1 = /* ]] && echo „$1” || ecou „$PWD/${1#./}”
}
#Această funcție se potrivește cu ziua săptămânii și returnează 0 dacă se potrivește, 1 dacă în weekend.
funcția dowcheck(){
cazul „${daysofweek[@]}” în
*\ ${DOW}\ *)
returnează 0;;
*)
return 1;;
esac
}
#Această funcție se potrivește dacă ora de intrare sau de ieșire a ceasului este o potrivire cu 0 sau 1 dacă nu.
functie timecheck(){
cazul „${timesofday[@]}” în
*\ ${HM}\ *)
returnează 0;;
*)
return 1;;
esac
}
#Această funcție corespunde zilelor libere cu ziua de astăzi. Dacă un meci revine 0 înseamnă zi liberă, 1 înseamnă nu zi liberă.
funcția daysoffcheck(){
cazul „${daysoff[@]}” în
*\ ${daymdy}\ *)
returnează 0;;
*)
return 1;;
esac
}
#Verificați tipul de sistem de operare.
OS_TYPE=$(uname -a | awk '{print $1}')
dacă [[ ${OS_TYPE} == „Linux” ]]; atunci
OS=$(grep -i ^name= /etc/*release | awk -F= '{print $2}' | sed 's/\"//g')
altfel
OS=$(system_profiler SPSoftwareDataType | awk '/System Version:/ {print $3}')
fi
if [ "${OS}" = "CentOS Linux" ]; atunci
OS=Fedora
fi
#Setați directoarele de lucru și setați afișajul pentru a rula într-un CRONJOB.
caz $OS în
macOS) apppath=/Applications/Firefox.app/Contents/MacOS
export DISPLAY="/private/tmp/com.apple.launchd.*/org.macosforge.xquartz:0"
PWD=$(dirname $(realpath1 $(care $0)));;
*) apppath=/usr/bin
DM=$(/usr/bin/basename $(/bin/cat /etc/X11/default-display-manager))
caz $DM in
lightdm)
export DISPLAY=:0;;
gdm3)
grep -E „# AutomaticLogin|AutomaticLoginEnable = false” /etc/$DM/*.conf >/dev/null && export DISPLAY=:1 || export DISPLAY=:0;;
*);;
esac
PWD=$(dirname $(realpath $(care $0)));;
esac
#Setați variabile pentru funcțiile de potrivire.
DOW=$(data +%a)
HM=$(data +%H:%M)
daymdy=$(data +%m-%d-%Y)
#Dacă ziua de azi este mai nouă decât ziua liberă, eliminați ultima zi liberă.
dacă [[ "${daymdy}" > "$(head -1 $PWD/daysoff.txt)" ]]; atunci
sed -i '1d' $PWD/daysoff.txt
fi
#Declare matrice.
declare -a daysofweek=('Luni' 'Marti' 'Miercuri' 'Joi' 'Vineri')
declare -a timesofday=('08:00' '12:00' '12:30' '16:30')
declare -a inout=('in' 'out la prânz' 'in from lunch' 'out for the day')
declara -a daysoff=($(cat $PWD/daysoff.txt))
#Intra sau iesi.
pentru i în „${!timesofday[@]}”; do
dacă [[ "${timesofday[$i]}" == "${HM}" ]]; atunci
inorout="${inout[$i]}";
fi;
Terminat
#Run funcții și returnează 0 sau 1.
dayoffcheck
doff=$?
dowcheck
dow=$?
verificarea timpului
timp=$?
#Terminați și trimiteți informații sau lansați Firefox dacă este necesar.
dacă [[ $doff != "1" ]]; atunci
echo "Astăzi este o zi liberă! De ce încerci să înregistrezi?"
iesirea 1
elif [[ $dow != "0" ]]; atunci
echo "Este weekend! De ce încerci să înregistrezi?"
iesirea 1
elif [[ $time != "0" ]]; atunci
echo "Este $DOW la $HM. Nu este timpul să înregistrați sau să ieșiți."
iesirea 1
altfel
echo "Este ${HM}. Este timpul să cronoști ${inorout}." | mail -s „Ceas” [email protected]
echo "Este ${HM}. Este timpul să cronoști ${inorout}." | mail -s „Ceas” [email protected]
xdotool mousemove --sync 677 1011
$apppath/firefox --new-tab https://workforcenow.adp.com/workforcenow/login.html &
$PWD/clock_in_out.bsh
aștepta
fi
Dacă cineva are vreo idee că aș putea face Firefox să funcționeze cu D-Bus așa cum a fost cu X11 înainte de versiunea 94, aș aprecia foarte mult!