bash - как запустить фоновый процесс от другого пользователя

Как сделать так чтобы запущенный процесс работал от имени другого пользователя и висел в спящем состоянии, пока я его не убью? У меня были попытки сделать так:

sudo -u user_name top&       # запускаю процесс от имени другого пользователя
top_pid=$(ps -C top -o pid=) # сохраняю pid работающего процесса
echo "$top_pid" # здесь вывод пустой строки, ибо top завершается мгновенно
# ... дальнейшие манипуляции

Проблема в том, что при запуске скрипта top завершается мгновенно и наблюдается ошибка top: failed tty get. А нужно чтобы этот процесс работал, пока я его не завершу. Как этого добиться? Понимаю что выбрал плохой пример с top


Ответы (1 шт):

Автор решения: karaname

Решение:

sudo -u $empty_user sleep 100&
sleep 1 && pid=$(ps -C sleep -o pid=)
echo "$pid"

Команды sleep достаточно

→ Ссылка