Вероятно, это не лучший способ сделать это, но я обнаружил, что если я использую:
pgrep -fn /home/user/directory/AppName.exe
, это дает мне правильный.
Я пробовал использовать параметр -x
(точное совпадение), но по какой-то причине это не сработало.
Используйте setsid
следующим образом.
#!/bin/sh
exec setsid /sbin/agetty 38400 tty1 linux --noclear
Обертка setsid
будет запускать agetty в качестве лидера сеанса ( см. Этот ответ ), позволяя ей связываться с tty1
.
Вы можете увидеть другое поведение в следующем примере ps
.
# ps xao pid,ppid,sid,tty,cmd
[...]
150 1 150 ? runsvdir
154 150 155 ? runsv agetty-3
157 154 157 tty3 -bash
152 150 152 ? runsv agetty-4
156 152 152 ? -bash
[...]
Служба agetty-3
использовала setsid
, тогда как agetty-4
не использовала. Следовательно, оболочка на tty3 является лидером сеанса и привязана к своему tty. Оболочка на tty4 находится в том же сеансе своего супервизора и не связана (?
в столбце tty).