0

A small shell script writes to a terminal, in while-loop, with echo.

If I close the terminal, it re-attaches to the new terminal I start - usually /dev/pts/0 but it has also attached to /dev/pts/10.

It survives re-boot. I can't find what process it is:

ps -elf | awk '{if ($5 == 1){print $4" "$5" "$15}}'

shows no shells running apart from the terminal I am on, and the pts it is writing to. If I kill those, and start again, it continues to write, but I see no shell.

The script sleeps for a second. I've tried looking for sleep in ps, but it never seems to appear.

How can I find and kill it? I'm running Ubuntu 17.04 btw.

6
  • Do you know what it is? How do you know it's a "small shell script"?
    – Joe P
    Jun 11, 2017 at 9:46
  • Can you provide any other details?
    – Ravexina
    Jun 11, 2017 at 10:07
  • I wrote the script - it's a for loop, with a sleep 1, and a write to the terminal. I don't have the exact script, it's not in my history. I was trying to test something else, and got stuck with it as an orphan process. Jun 11, 2017 at 12:27
  • 1
    AFAIK processes don't survive boot - so it's most likely something that's being run from one of your shell initialization scripts (~/.bashrc, ~/.bash_profile, ~/.profile` etc.) Jun 11, 2017 at 12:34
  • Yes, it must be stored somewhere and invoked during boot.
    – Joe P
    Jun 11, 2017 at 14:37

1 Answer 1

0

If it's writing to the terminal it must have (probably has) a handle to the terminal. In that case

lsof `tty`

from the terminal it's writing to should list it, giving you the pid.

(Or substitute the actual terminal e.g. lsof /dev/pts/0.)

3
  • Thank you, a good approach. Unfortunately, it is spawning too quickly to do much about it. lsof gives the PID, but, before there's a chance to kill it, it's respawned with a new one. Jun 11, 2017 at 9:57
  • Can you get the parent pid?
    – Joe P
    Jun 11, 2017 at 10:13
  • Yes. Again, unfortunately, it only sees the shell itself - even with lsof -R /dev/pts/0 ` COMMAND PID PPID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 20451 20384 root 0u CHR 136,1 0t0 4 /dev/pts/1 bash 20451 20384 root 1u CHR 136,1 0t0 4 /dev/pts/1 bash 20451 20384 root 2u CHR 136,1 0t0 4 /dev/pts/1 bash 20451 20384 root 255u CHR 136,1 0t0 4 /dev/pts/1` Jun 11, 2017 at 10:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .