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 достаточно