Да, это возможно.
Здесь вы хотите, чтобы процесс переродился. Unix изменит родительский процесс на PID 1 после завершения исходных родительских процессов.
Таким образом, все, что вам нужно сделать, это исходный родитель sleep 2000
выхода.
Вы можете сделать это, запустив фон sleep 2000
из подоболочки.
Что-то вроде:
#!/bin/bash
sleep 15 &
( sleep 2000 & )
# do something else here, like:
sleep 1
echo "=== Listing 'sleep' process tree: ==="
ps auxfwww | grep -i [2]000 -B 10
echo "=== All done. ===
Я обнаружил, что на поведение влияет состояние NumLock. Если NumLock на основной клавиатуре выключен, а внешний NumLock включен (или наоборот ), клавиатура отправляет дополнительные коды клавиш при каждом нажатии клавиши. Например. для клавиши "5" имеется шесть событий:
NumLock нажат и отпущен
KP _5 нажато-отпущено
NumLock нажат и отпущен
Очевидно, это разрушает липкое поведение.
Протестировано в Manjaro 18.1. Эта проблема, по-видимому, затрагивает только терминал, при тестировании в KDE (с активированными залипающими клавишами в настройках системы )она не возникала. Но я не знаю о других DE.