Saya mengeksekusi skrip ini dari root pengguna di direktori "/":
su -c "sh /home/bob/start_server.sh" bob
dan "start_server.sh" berisi
screen -d -m -S serverscreen mono startserver.exe
Namun semua file yang dibuat oleh "startserver.exe" dibuat di direktori root "/", jadi gagal diam-diam (saya kira karena masalah izin karena berfungsi jika saya cd ke "/ home / bob" sebelum memanggil "u -c "baris perintah)
Saya memeriksa manual untuk perintah "su", tetapi saya tidak menemukan petunjuk di sana.
Mungkinkah "layar" me-reset direktori saat ini dan mengeksekusi dari "/" bukannya "/ home / bob"?
linux
command-line
gnu-screen
sh
su
NaturalBornCamper
sumber
sumber
1
Saya tidak terbiasa dengan mono tetapi apakah ini berhasil? screen -d -m -S serverscreen bash -c 'cd / home / bob; mono startserver.exe '
HoD
Ya ini berfungsi, sama seperti jika saya cd ke direktori pengguna dalam file skrip. Saya mencoba membuatnya bekerja hanya dengan satu perintah;)
NaturalBornCamper