web-dev-qa-db-fra.com

exécuter le script avant la connexion

Toute la journée, je suis confronté à un problème de script de démarrage.

Ce que je recherche, c’est un moyen d’exécuter un seul script à partir de boot/before login qui configurera ma machine et exécuter des services appropriés. (Un seul script pour tous les utilisateurs serait cool - maintenance facile)

script simple "/machineSetup.sh"

#LC_NUMERIC - Specifies the decimal delimiter
export LC_NUMERIC="en_US.UTF-8"
#-------------------------------------------------------------------
#add custom aliases path 
export PATH=$PATH:/home/user/aliases
#-------------------------------------------------------------------
#run backburnerServer (tool to control remote computing) run process
/usr/discreet/backburner/backburnerServer &
#-------------------------------------------------------------------
#run x11vnc run process 
/usr/bin/x11vnc &

Je suis sur Ubuntu14.04. J'ai déjà fait des tests avec /etc/rc.local sans succès. J'ai essayé /etc/profile.d/machineSetup.sh mais cela ne fonctionne qu'après la connexion.

Ce serait cool si vous pouviez me donner des indices. Est-il possible de stocker la configuration dans un seul fichier? Merci d'avance pour vos suggestions!

2
bolek

Vous pouvez commencer n'importe quel script à partir de

/etc/rc.local

Mieux vous créez un fichier .conf upstart. Ceux-ci sont stockés dans

/etc/init/*.conf

A titre d'exemple, voici le contenu du fichier /etc/init/hostname.conf:

#
# This task is run on startup to set the system hostname from     /etc/hostname,
# falling back to "localhost" if that file is not readable or is empty     and
# no hostname has yet been set.

description     "set system hostname"

start on startup

task
exec hostname -b -F /etc/hostname

Une autre solution consiste à utiliser la fonction crontab @reboot, en savoir plus sur crontab here

3
cmks

Les variables d'environnement de déclaration sont généralement effectuées dans ~/.profile, vous pouvez donc simplement ajouter ces lignes à la fin de ce fichier. Je ne sais pas si cela répond à votre question, mais si vous êtes d'accord avec l'exécution du script à la connexion, vous devriez essayer d'ajouter le script à votre Applications de démarrage. Ouvrez simplement le tiret, entrez Applications de démarrage, puis cliquez sur Ajouter. Entrez le nom de votre choix et dans le champ Commande, naviguez dans votre script. Cliquez ensuite sur Ajouter et vous avez terminé.

0
Rahul Mukherji

Lorsque vous appelez de rc.local, vous devez disposer d’un script Shell exécutable:

Sudo -i

vi /machineSetup.sh

Contenu:

#!/bin/bash
#LC_NUMERIC - Specifies the decimal delimiter
export LC_NUMERIC="en_US.UTF-8"
#-------------------------------------------------------------------
#add custom aliases path 
export PATH=$PATH:/home/user/aliases
#-------------------------------------------------------------------
#run backburnerServer (tool to control remote computing) run process
/usr/discreet/backburner/backburnerServer &
#-------------------------------------------------------------------
#run x11vnc run process 
/usr/bin/x11vnc &

Rendez-le exécutable:

chmod 0755 vi /machineSetup.sh
0
cmks

Je ne sais pas pourquoi je n'y ai pas pensé plus tôt. Tout ce que vous avez à faire est d’ouvrir /etc/rc.local dans un éditeur de texte et de coller le contenu de votre script dans le fichier, avant la ligne exit 0. Je sais que cela fonctionne, car j’ai mis mon ordinateur portable Bluetooth automatiquement au démarrage.

0
Rahul Mukherji