By default `machinectl shell` runs the user's shell with the "login" flag,
exactly as during console or SSH logins. For Bash, that means it will look
for ~/.bash_profile or ~/.profile *instead of* ~/.bashrc.

Usually people have a ~/.bash_profile that sets up "once per session"
things if any, then manually sources ~/.bashrc (with the '.' or 'source'
command) as Bash never does do so automatically.

The same applies to global configs; Bash in login mode will read
/etc/profile, but not /etc/bash.bashrc unless the latter is explicitly
sourced (e.g. Arch's /etc/profile has an "if [ "$BASH" ]; then .
/etc/bash.bashrc; fi").

On Thu, Aug 17, 2023 at 3:09 AM LuKaRo <li...@lrose.de> wrote:

> Hi,
>
> somehow, when using machinectl shell to access my nspawn containers, my
> .bashrc is ignored, although bash is correctly used as my shell. However,
> when specifying /bin/bash explicitly, the .bashrc gets sourced correctly.
> Any ideas?
>
> *lukas@home*:*~*$ sudo machinectl shell x11
> Connected to machine x11. Press ^] three times within 1s to exit session.
> [root@x11 ~]# echo $HISTFILESIZE; echo $0;
> 500
> /bin/bash
> [root@x11 ~]#
> logout
> Connection to machine x11 terminated.*lukas@home*:*~*$ sudo machinectl shell 
> x11 /bin/bash
> Connected to machine x11. Press ^] three times within 1s to exit 
> session.*root@x11*:*~*# echo $HISTFILESIZE; echo $0;
>
> /bin/bash*root@x11*:*~*#
> exit
> Connection to machine x11 terminated.*lukas@home*:*~*$
>
> Thanks,
> lukaro
>


-- 
Mantas Mikulėnas

Reply via email to