

I think you already decided what I would have recommended (just write to a log file in your python script) but I wanted to hopefully help with the rest of the question hah.
So the first thing to remember is that a pipe (|
) in Linux is a unidirectional data channel that passes stdout
from the left command the right command’s stdin
and this is its only function. Also notable is that exit status of a pipeline is the exit status of the last command in the pipeline (unless the pipefail
option is enabled but this isn’t the behavior you wanted either), this is what is available in $?
as well immediately after the pipe exits in a script, problem with that is that tee can exit successfully while the previous command failed because it did its job redirecting output.
To get the behavior you are after you would probably need to write a script that does the signal handling or it might work if you use exec to wrap your python+tee command in your dockerfile because then the bash process will get replaced by python or tee, I’m not sure which or how tee will interact with exec without testing though.
Anyway, hope that helps, here are the docs on pipe which are worth a read. In fact when double checking something just now, I learned I can do |&
today instead of &1 |
which is neat hah!
Edit: I forgot to mention, signal handing in docker is a whole other animal so depending on how you are specifically running it the behavior and signals might not be what is expected or the same as running the commands outside of docker.
Great article about it: https://medium.com/@gchudnov/trapping-signals-in-docker-containers-7a57fdda7d86
Repost if you can’t read it on medium: https://www.cloudbees.com/blog/trapping-signals-in-docker-containers
In contrast, and I say this as someone who has used various types of Unix and Linux for a long time, I think this is an excellent use for AI, just be sure to use it to teach you things not just to solve your problems for you.
What I mean by this is I have found (mostly Claude) to be great at explaining concepts, especially if you use it to make analogies to something you know. It is absolutely not right every single time but I have had great luck with questions like “explain to me how to X in Y tool, I know how to have the same outcome by doing A in B tool” or “explain to me how docker works using a rocket as a metaphor” or things like that. Also I use it a lot for new subjects where I don’t know what to search for quite yet and I can just give it a long rambling explanation and example and ask it for 3 suggestions to research further or things to check. It is kind of useful as an expensive search engine but if you use it like a research engineer to get you started it can be really helpful in my experience.
As others have said though, I have been doing it forever both personally and professionally and I am definitely still learning. Linux knowledge is more of a skill to develop over time not something that is easy to master because it continually changes. Learning how to find or figure out the answers is the most valuable skill though, it’s impossible to remember everything. That and often there is no single right or correct answer for every situation but there are a lot of options and opinions and often more of the latter than the former. That said though usually the best answer is the one that I forget about because it functions forever and doesn’t blow up in my face hah.
Anyway, hope at least some of that is helpful, best of luck!
:wq