Os caminhos LIB podem ser definidos em rc.local? Ele executa seus comandos após o login?

3
  1. O rc.local executa seus comandos após o login?

  2. Como o rc.local executa seus comandos depois que o nível de execução de vários usuários é concluído, isso também significa que podemos / devemos definir caminhos LIB nele em vez de defini-los em .bashrc?

por Aquarius_Girl 29.04.2017 / 16:09

1 resposta

2

O script /etc/rc.local é invocado no final da inicialização normal do sistema. Ele é executado como root e não tem nenhuma relação com o login do usuário. Qualquer atribuição de variáveis de ambiente em /etc/rc.local está disponível apenas para os processos iniciados por /etc/rc.local ; eles não estão disponíveis para processos iniciados na sessão de login de um usuário.

/etc/rc.local não tem efeito direto na sessão de login de um usuário. É normalmente usado para montar alguns discos, iniciar alguns serviços e outras tarefas semelhantes. Não pode ser usado para configurar o ambiente de um usuário.

Primeiro, vamos analisar o /etc/rc.local em si:

$ cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0

rc.local é um recurso antigo do sistema semelhante ao Unix, mais antigo até mesmo do que o sistema de inicialização do System V (aquele que usava os diretórios /etc/rc[0-6S].d ). Sistemas recentes do Ubuntu usaram systemd para controlar a inicialização; /etc/rc.local é invocado pelo systemd unit rc-local.service :

$ sudo systemctl status rc-local
● rc-local.service - /etc/rc.local Compatibility
   Loaded: loaded (/lib/systemd/system/rc-local.service; static; vendor preset: enabled)
   Drop-In: /lib/systemd/system/rc-local.service.d
       └─debian.conf
   Active: active (exited) since Fri 2017-04-28 17:44:18 EEST; 2 days ago

Apr 28 17:44:18 factissa systemd[1]: Starting /etc/rc.local Compatibility...
Apr 28 17:44:18 factissa systemd[1]: Started /etc/rc.local Compatibility.

A unidade é gerada automaticamente na inicialização, se o arquivo /etc/rc.local existir, e é configurado, por padrão, para ser chamado após atingir network.target ; no Debian e derivados como o Ubuntu, um arquivo de configuração drop-in modifica isso para que a unidade seja executada após network-online.target .

Isso não é exatamente o mesmo que o local tradicional de /etc/rc.local no final de uma inicialização de nível de execução de vários usuários, mas é semelhante o suficiente para que, na maioria dos casos, nenhum ajuste precise ser feito. (Olhe para esses arquivos, eles são texto e bastante compreensível; para fazer modificações, leia a documentação systemd primeiro.)

    
por AlexP 29.04.2017 / 18:06