GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è l'equivalente Linux dell'avvio di Windows?

Qualcosa come Cron?

Nota il @reboot ingresso

Questo è l'approccio più flessibile e quello più simile alle "Attività pianificate" di Windows (meglio in realtà).


Avvio automatico di Xorg

Oltre agli script di avvio a livello di sistema, il tuo ambiente desktop potrebbe avere il proprio modo di eseguire automaticamente i programmi. La cartella .config/autostart dovrebbe essere un modo indipendente dal desktop per definire le voci di esecuzione automatica. /etc/xdg/autostart è per la configurazione a livello di sistema. Dettagli sulle specifiche su http://developer.gnome.org/autostart-spec/.

Per LXDE le voci di avvio automatico possono anche essere impostate in ~/.config/lxsession/LXDE/autostart .

È un po' diverso se devi eseguire i tuoi script dopo la rete è attiva e funzionante. In tal caso dovresti controllare gli speciali script post-connessione che possono essere definiti per il tuo gestore di rete. Entrambi NetworkManager e wicd hanno i propri modi per specificare le voci di esecuzione automatica post-connessione. Se la rete è configurata tramite ifupdown , quindi gli script post-up possono essere inseriti nel /etc/network/if-up.d/ cartella. Ma un approccio migliore all'esecuzione di script post-connessione potrebbe essere systemd (per i sistemi che lo supportano, che è la maggior parte delle distribuzioni moderne).

Avvio automatico come servizio systemd

Se la cosa che desideri avviare automaticamente non è un'app grafica che richiede un desktop, allora è meglio evitare di utilizzare le funzionalità di avvio automatico fornite da xorg o dal tuo attuale ambiente desktop.

systemd è diventato onnipresente in molte distribuzioni moderne e offre molto controllo e flessibilità in termini di come i tuoi servizi vengono avviati e come vengono eseguiti.

Riassumerò alcuni vantaggi (systemd può fare molto di più ):

  • Esegui come root o come utente specifico:ad es. User=myuser
  • Riavvia i servizi in caso di errore con timeout configurabili:Restart=on-failure|on-watchdog|on-abnormal|always
  • Impostazione del tipo di servizio:Type=simple|forking|oneshot|notify|dbus
  • Stabilisci le precondizioni e le dipendenze di avvio, ovvero puoi impostare il tuo servizio in modo che si avvii dopo che la rete è attiva (Wants=network-online.target nel [Unit] sezione).

Un servizio di esempio che avvia un demone telegram-cli. Inseriscilo in /etc/systemd/system/tg.service .

[Unit]
Description=MyDaemon
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/local/bin/telegram-cli -k /etc/telegram-cli/tg-server.pub -W -P 1234 -d -vvvRC
ExecStop=/usr/bin/pkill -f telegram-cli

User=jicu

[Install]
WantedBy=multi-user.target

Ora puoi abilitare l'avvio automatico del servizio:

sudo systemctl enable tg

Avvia il servizio:

sudo systemctl start tg

Arresta il servizio:

sudo systemctl stop tg

Controlla lo stato:

systemctl status tg

Disattiva il servizio:

sudo systemctl disable tg

Per risparmiare ulteriore digitazione puoi aggiungere il tuo ~/.bashrc la riga alias sc='sudo systemctl $*' quindi sarai in grado di abbreviare i comandi sopra ad es. sc start tg .

Ulteriori informazioni:

  • Capire systemd
  • servizi systemd
  • unità di sistema

Sì, è possibile eseguire programmi all'avvio su Linux definendo i percorsi degli eseguibili in rc.local che risiede nel /etc o /etc/rc.d directory, ad esempio:

#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
/path/to/executable

Nota:non dimenticare di assegnare i diritti eseguibili come descritto nella documentazione del file, ovvero Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure that this script will be executed during boot.


Linux
  1. Qual è il miglior VPS:Windows o Linux?

  2. Qual è l'equivalente Linux della pausa DOS?

  3. Qual è il modo corretto per avviare un servizio mongod su Linux/OS X?

  4. Qual è l'equivalente di getch() e getche() in Linux?

  5. Qual è l'equivalente C++ per AutoResetEvent in Linux?

Linux vs. Unix:qual è la differenza?

Che cos'è la shell in Linux?

Qual è il comando kill in Linux?

Qual è l'analogo di Windows del comando watch di Linux?

Qual è l'equivalente del comando Linux sudo fdisk -l in MacOS?

Qual è l'equivalente di Active Directory su Linux