Лучшее, что я могу придумать, это:
DEBIAN_FRONTEND=noninteractive apt remove --purge -yq mariadb\*
rm -rf /var/lib/mysql
ПРЕДУПРЕЖДЕНИЕ :Это может быть опасно.
FWIW, я могу воспроизвести ваш случай с:
rhel8$ /bin/jobs(){ jobs -l; }
rhel8$ sleep 1 | sleep 3600 &
[1] 2611
rhel8$ sleep 2
rhel8$ jobs
[1]+ Running sleep 1 | sleep 3600 &
rhel8$ /bin/jobs
[1]+ 2610 Running sleep 1
2611 Running | sleep 3600 &
rhel8$ pgrep 2610
<nothing!>
rhel8$ ls /proc/2610
ls: cannot access '/proc/2610': No such file or directory
rhel8$ /bin/jobs
[1]+ 2610 Running sleep 1
2611 Running | sleep 3600 &
rhel8$ cat /bin/jobs
#!/bin/sh
builtin jobs "$@"
Или с (еще ламернее предыдущего):
rhel8$ unset -f /bin/jobs
rhel8$ export JOBS=$(jobs -l)
rhel8$ builtin(){ echo "$JOBS"; }
rhel8$ export -f builtin
rhel8$ /bin/jobs
[1]+ 2610 Running sleep 1
2611 Running | sleep 3600 &
rhel8$ type /bin/jobs
/bin/jobs is /bin/jobs
Примечание :Как уже было продемонстрировано, jobs -l
в bash отображает устаревшую информацию, а конвейерные процессы, которые уже завершились, по-прежнему отображаются как Running
. ИМХО, это ошибка --другие оболочки, такие как zsh, ksh или yash, правильно отображают их как Done
.