시작 시 장기 실행 사용자 정의 스크립트를 시작하고 싶습니다. 스크립트는 특정 사용자 이름으로 실행되어야 합니다. 지금까지 성공적으로 screen 명령을 사용하고 사용자 정의 스크립트에서 사용자로 전환했습니다. 하지만 나중에 해당 사용자로 로그인하여 화면을 복원할 수 있도록 해당 사용자 아래에서 screen 명령을 실행하고 싶습니다.
이 명령은 콘솔에서 루트로 실행하면 작동하지만 시작 스크립트에서는 한 줄로 작동하지 않습니다.
su -c "screen -S 세션 이름 -d -m /path/cot/bash/script" 사용자 이름
답변1
GNU/Linux에서 부팅할 때 다음을 사용하면 안 됩니다 su
(예:PAM/dbus에 따라 다릅니다., 아직 사용하지 못할 수도 있음), 그러나 runuser
:
runuser username -l -c "screen -S sessionname -d -m /path/to/bash/script"
runuser
구문은 뒤에 username 을 사용하는 경우 와 동일합니다 su
.
답변2
알겠습니다. -l 플래그를 사용해야 합니다.
su -l -c "screen -S sessionname -d -m /path/to/bash/script" username