You can use this below code
use strict; use warnings; use POSIX qw/getpgrp tcgetpgrp/; if (!open(TTY, "/dev/tty")) { print "no tty\n"; } else { my $tpgrp = tcgetpgrp(fileno(*TTY)); my $pgrp = getpgrp(); if ($tpgrp == $pgrp) { print "foreground\n"; } else { print "background\n"; } }
tcgetpgrp:
The tcgetpgrp() function will return the value of the pro-
cess group ID of the foreground process group associated
with the terminal.
If there is no foreground process group, tcgetpgrp() returns
a value greater than 1 that does not match the process group
ID of any existing process group.
The tcgetpgrp() function is allowed from a process that is a
member of a background process group; however, the informa-
tion may be subsequently changed by a process that is a
member of a foreground process group.
getpgrp():
The getpgrp() function returns the process group ID of the calling process.
Upon successful completion, these functions return the pro-
cess group ID. Otherwise, getpgid() returns (pid_t)-1 and
sets errno to indicate the error.
In reply to Re: Determine running process
by leslie
in thread Determine running process
by manoj_speed
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |