jliu83
jliu83

Reputation: 1723

how to pass information to a background process in bash

I have created a bash script and it runs in the background. It has a PID which is stored in a file, and I can use KILL to pass predefined signals to the process.

From time to time however, I'd like to pass information to the process manually. Preferably what I would like to happen is to be able to pass a string or array of information, which is captured through TRAP, then the forever loop inside the bash file will process the information. Is there an easy way to pass information into a background process?

Thanks

Upvotes: 2

Views: 1814

Answers (2)

Kevin
Kevin

Reputation: 56089

You can create a fifo, have the main process write to it and have the child read from it.

mkfifo link
run_sub < link &
generate_output > link

Upvotes: 6

MattH
MattH

Reputation: 38247

Have it listen on a socket and implement a protocol to achieve your communication aims, probably a bit much for bash.

Or, have it try to read a particular file on receipt of a particular signal. For example, it is common for programs to re-read their configuration files on receipt of a HUP.

Upvotes: 1

Related Questions