Iniciador
As tarefas em / etc / xdg / autostart são iniciadas pelo Desktop Environment com as credenciais do usuário atual e podem acessar a GUI, então acho que essa é a melhor escolha.
Arquivo /etc/xdg/autostart/updateNotification.desktop:
[Desktop Entry]
Name=My Update Notification
Exec=updateNotification.sh
Terminal=false
Type=Application
NoDisplay=true
Script de monitoramento
O script de monitoramento deve ser colocado em um local acessível pelo mundo. Eu recomendo / usr / local / bin porque mexer com arquivos nesse diretório não afetará o sistema operacional. Eu mudei seu roteiro um pouco.
Arquivo /usr/local/bin/updateNotification.sh:
#!/bin/bash
# Exit if this script is already running.
[[ $(pgrep -c -u $USER -f "^/bin/bash ${0}$") -gt 1 ]] && exit 0
NotifFile=~/.updateNotification.txt
source easybashgui
# Wait some time before starting monitoring the file, so the user doesn't get a popup right after logging in.
sleep 120
while true; do
if [[ -s $NotifFile ]]; then
read MSG < $NotifFile
# Only empty the file if the message is successfully displayed.
message "$MSG" && echo -n > $NotifFile
fi
sleep 3600
done
exit 0
É claro que você terá que baixar download easybashgui, extrair e instalar isso.
tar xzf easybashgui-8.0.1.tar.gz
cd easybashgui-8.0.1/
sudo make install
Instalador
Eu realmente gosto de usar arquivos bash de auto-extração porque todo o processo de instalação pode ser incorporado em um único arquivo. Tudo o que precisamos fazer é concatenar um cabeçalho bash pré-criado com um arquivo tar.
Antes de criar o arquivo, verifique se todos os arquivos estão no lugar em que deveriam estar e se têm as permissões corretas, neste caso:
sudo chown root:root /etc/xdg/autostart/updateNotification.desktop
sudo chown root:root /usr/local/bin/updateNotification.sh
sudo chmod 644 /etc/xdg/autostart/updateNotification.desktop
sudo chmod 755 /usr/local/bin/updateNotification.sh
Também podemos incluir easybashgui no instalador. Descompacte o arquivo easybashgui em / tmp:
tar zxf easybashgui-8.0.1.tar.gz -C /tmp
e tar
de todos os arquivos necessários:
sudo tar zcf MyArchive.tar.gz /etc/xdg/autostart/updateNotification.desktop /usr/local/bin/updateNotification.sh /tmp/easybashgui-8.0.1/
Crie o cabeçalho bash que irá descompactar o arquivo e instalar o easybashgui. Arquivo header.sfx:
#!/bin/bash
DATA='awk '/^__BEGIN_DATA__/ { print NR + 1; exit 0; }' $0'
tail -n+$DATA $0 | tar zx -C /
# Additional installation steps
cd /tmp/easybashgui-8.0.1/
make install
exit 0
# The following line must be the last one. Don't place any character after it.
__BEGIN_DATA__
Por fim, junte o cabeçalho e o arquivo:
cat header.sfx MyArchive.tar.gz > MyInstaller.sh
Agora você pode copiar o instalador para outra máquina, dar permissão de execução e executar sudo ./MyInstaller.sh
.
É isso. Espero que ajude.