J'ai un script shell. Je souhaite configurer mon script pour qu'il s'exécute automatiquement au démarrage. Je sais comment faire cela depuis l'interface graphique. Mais je voulais faire cela depuis le terminal. Comment puis-je faire ceci?
Lors d’une recherche principale, j’ai trouvé que le fichier devait être déplacé dans le répertoire /etc/int.d/
. Mais cette opération nécessite l'autorisation de Sudo. Je voulais le faire sans les autorisations du super utilisateur.
J'ai également constaté qu'il existe des fichiers sous ~/.config/autostart/
qui ont certains paramètres concernant les applications de démarrage. Mais je ne sais pas comment les éditer pour y parvenir.
Quelqu'un peut-il me dire la procédure exacte pour y parvenir?
Comme vous l'avez mentionné dans votre question, les commandes peuvent être exécutées lors de la connexion en plaçant un lanceur dans ~/.config/autostart
Etant donné que le lanceur n'est utilisé que pour démarrer un script, vous avez uniquement besoin des mots-clés d'entrée de bureau "de base" dans les fichiers .desktop
créés: les mots-clés/lignes dont vous auriez besoin au moins:
[Desktop Entry]
Name=name
Exec=command
Type=Application
La ligne (facultative) X-GNOME-Autostart-enabled=true
sera ajoutée automatiquement si vous activez/désactivez la fonction de démarrage automatique du programme de lancement (elle est définie sur X-GNOME-Autostart-enabled=true
par défaut).
Plus sur les champs obligatoires, vous pouvez trouver ici .
Pour créer un tel lanceur à partir de la ligne de commande, vous avez besoin d'un petit script qui prend le nom du démarreur et la commande à exécuter en tant qu'argument. Un exemple d'un tel script ci-dessous.
Si je le lance avec la commande:
python3 '/path/to/script' 'Test' 'gedit'
Il crée un programme de lancement de démarrage, exécutant gedit
lorsque je me connecte.
Le lanceur est également visible dans Dash> Applications de démarrage:
#!/usr/bin/env python3
import os
import sys
home = os.environ["HOME"]
name = sys.argv[1]; command = sys.argv[2]
launcher = ["[Desktop Entry]", "Name=", "Exec=", "Type=Application", "X-GNOME-Autostart-enabled=true"]
dr = home+"/.config/autostart/"
if not os.path.exists(dr):
os.makedirs(dr)
file = dr+name.lower()+".desktop"
if not os.path.exists(file):
with open(file, "wt") as out:
for l in launcher:
l = l+name if l == "Name=" else l
l = l+command if l == "Exec=" else l
out.write(l+"\n")
else:
print("file exists, choose another name")
Collez-le dans un fichier vide, enregistrez-le sous set_startupscript.py
, exécutez-le à l'aide de la commande suivante:
python3 /path/to/set_startupscript.py '<name>' '<command>'
~/.config/autostart
, en prenant le nom et la commande comme arguments.Si un programme de lancement portant le nom existe déjà dans ~/.config/autostart
, il affiche un message:
file exists, choose another name
J'ai trouvé une réponse
cd à ~/.config/autostart/
. Si vous n'avez pas de dossier nommé autostart, créez-en un avec ce nom à l'aide de mkdir autostart.
Ajoutez maintenant le fichier suivant avec le nom yourScript.sh.desktop
[Desktop Entry]
Type=Application
Exec="/Your/location/to/theScript/yourScript.sh"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_IN]=AnyNameYouWish
Name=AnyNameYouWish
Comment[en_IN]=AnyComment
Comment=AnyComment
Terminé!