Executar script no login (script com sudo) ou inicialização

4
#!/bin/bash
ids=$(xinput list | awk '/SteelSeries Sensei Raw Gaming Mouse .*pointer/ {print }' | sed 's/id=\(.*\)//')

if [ -z "$ids" ]; then
  exit 0;
fi

read -a ids_array <<< $ids

echo fixing id ${ids_array[0]}
xinput set-prop ${ids_array[0]} 'Device Accel Profile' -1
xinput set-prop ${ids_array[0]} 'Device Accel Constant Deceleration' 2.5
xinput set-prop ${ids_array[0]} 'Device Accel Adaptive Deceleration' 1
xinput set-prop ${ids_array[0]} 'Device Accel Velocity Scaling' 1

echo fixing id ${ids_array[1]}
xinput set-prop ${ids_array[1]} 'Device Accel Profile' -1
xinput set-prop ${ids_array[1]} 'Device Accel Constant Deceleration' 1.5
xinput set-prop ${ids_array[1]} 'Device Accel Adaptive Deceleration' 1
xinput set-prop ${ids_array[1]} 'Device Accel Velocity Scaling' 1

sudo sensei-raw-ctl --show
sudo sensei-raw-ctl --polling 500
sudo sensei-raw-ctl --cpi-on 450
sudo sensei-raw-ctl --cpi-off 5670

unset ids
unset ids_array

Eu desejo que o script a seguir seja executado uma vez quando eu fizer o login ou quando o computador for inicializado. O script acima está localizado em /home/karl/.scripts/startup/sensei-raw-startup.sh .

NÃO desejo usar a GUI para adicionar o script. Desejo aprender um pouco mais sobre como fazer isso manualmente.

Quais arquivos eu preciso criar, o que deve estar neles e onde eles devem estar localizados para poder executar o meu script que está localizado no dito diretório.

    
por Karl Morrison 01.12.2015 / 22:45

2 respostas

6

1. Usando o /etc/profile.d

Você pode executar o script no login colocando o script em /etc/profile.d /

Esses arquivos são executados no login .

Para criar um link simbólico para o arquivo que você deseja executar, use

  

sudo ln -s /home/karl/.scripts/startup/sensei-raw-startup.sh   /etc/profile.d/myscript.sh

2. Usando o upstart

Outra possibilidade é usar o upstart

  

iniciar no início da sessão na área de trabalho

e coloque seu script lá.

    
por mcantsin 02.12.2015 / 01:58
-1

Você pode iniciar seu script em /etc/rc.local . /etc/rc.local é para uso pelo administrador do sistema. Ele é executado depois que todos os serviços normais do sistema são iniciados, no final do processo de comutação para um runlevel multiusuário. Você pode usá-lo para iniciar um serviço personalizado, por exemplo, um servidor instalado em /usr/local . A maioria das instalações não precisa de /etc/rc.local , é fornecida para a minoria de casos em que é necessário.

    
por Tung Tran 02.12.2015 / 03:34