2013-12-18 2 views
0

문제가 있습니다. 다음 스크립트를 가지고 있습니다 :시작시 루트가 아닌 프로그램을 실행하는 방법은 무엇입니까?

cd /home/program 
screen -S program -d -m ./program.sh 

/etc/init.d에 있고 시작시 실행됩니다.

잘 작동하지만 루트로 실행되므로 루트로 실행하지 마십시오. 나는 그때 화면을하고 su programs-user을 사용하여 시도했지만 화면과 다른 아무것도 열리지 않습니다. 나는 그것이 퍼미션 일이라고 생각하지만 나는 리눅스에 익숙하지 않은만큼 확실하지 않다.

편집 :이 내가 지금 바로
su username -c "screen -S screen_name -d -m bash -c 'cd /home/user && ./program'"
을 가지고 무엇을 그리고 그것은 아무것도하지 않습니다.

편집 2 : 사용자가 화면을 실행할 수있는 권한이 없다고 추측하고 있습니다. 권한을 부여하는 방법을 모르겠습니다.

EDIT3 : 나는 그것이 사실 작업에 사용자 이름으로 로그인하지만 루트로 screen -ls를 입력 할 때 나는 화면을 볼 수 없을 때 좋아

답변

0
#!/bin/bash 

screen -dmS screen_name 
screen -S screen_name-p 0 -X stuff $'su username\n' 
screen -S screen_name-p 0 -X stuff $'cd /home/username\n' 
screen -S screen_name-p 0 -X stuff $'./program\n'