有一些问题。我有以下脚本:
cd /home/program
screen -S program -d -m ./program.sh
在/etc/init.d中,它在启动时运行。
哪个工作正常,但它以root身份运行,我不希望它以root身份运行。我已尝试使用su programs-user
然后执行屏幕,但它只打开屏幕而没有其他任何内容。我认为这是一个权限,但我不完全确定,因为我不熟悉linux。
编辑:这就是我现在所得到的
su username -c "screen -S screen_name -d -m bash -c 'cd /home/user && ./program'"
它没有做任何事情。
Edit2:我猜是因为用户没有运行屏幕的权限,不知道如何给予该权限。
Edit3:好的,当我使用用户名登录时,它实际上正在工作,但当我以root身份输入screen -ls
时,我看不到屏幕
答案 0 :(得分: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'