# Jupyter Hub - termnal /etc/profile.d/\*.sh file not sourcing

**URL:** <https://discourse.jupyter.org/t/jupyter-hub-termnal-etc-profile-d-sh-file-not-sourcing/26941>\
**Category:** JupyterHub\
**Created:** [July 14, 2024, 1:15am UTC](https://discourse.jupyter.org/t/jupyter-hub-termnal-etc-profile-d-sh-file-not-sourcing/26941 "2024-07-14T01:15:38Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![manics](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/manics/32/85_2.png) [@manics](https://discourse.jupyter.org/u/manics)\
**Post date:** [July 14, 2024, 4:24pm UTC](https://discourse.jupyter.org/t/jupyter-hub-termnal-etc-profile-d-sh-file-not-sourcing/26941/2 "2024-07-14T16:24:50Z")

</div>

Profile scripts aren’t always read when launching a non-login shell. See

> [@Jupyter server source script on launch](https://discourse.jupyter.org/t/jupyter-server-source-script-on-launch/15372/3):
>
> Definitely possible. JupyterHub’s Spawner.cmd only requires that it eventually launches jupyterhub-singleuser (or one of a few equivalents like jupyter-labhub). The standard way to do this, and one that I think gives a nice experience, is to create a launcher script like: #!/bin/bash -l # set any additional environment variables / do other startup # finally, 'become' jupyterhub-singleuser exec jupyterhub-singleuser "$@" The bash -l starts a login shell, so it should be fully configured with…

for an example of how to work around this.

---

_[View the full topic](https://discourse.jupyter.org/t/jupyter-hub-termnal-etc-profile-d-sh-file-not-sourcing/26941)._
