Der Bildschirmbefehl, der innerhalb eines Skripts aufgerufen wird, erstellt mit einem Befehl "su -c" Dateien im Stammverzeichnis

532
NaturalBornCamper

Ich führe dieses Skript vom Benutzer root im Verzeichnis "/" aus:

su -c "sh /home/bob/start_server.sh" bob 

und "start_server.sh" enthält

screen -d -m -S serverscreen mono startserver.exe 

Alle Dateien, die von "startserver.exe" erstellt werden, werden jedoch im Stammverzeichnis "/" erstellt. Sie schlagen daher unbemerkt fehl (ich denke, aufgrund von Berechtigungsproblemen, da es funktioniert, wenn ich "/ home / bob" stelle, bevor Sie "u" aufrufen -c "Befehlszeile)

Ich habe im Handbuch nach dem Befehl "su" gesucht, dort aber keine Hinweise gefunden.

Könnte es sein, dass der "Bildschirm" das aktuelle Verzeichnis zurücksetzt und von "/" anstelle von "/ home / bob" ausgeführt wird?

0
Ich bin nicht mit Mono vertraut, aber funktioniert das? screen -d -m -S serverscreen bash -c 'cd / home / bob; mono startserver.exe ' HoD vor 6 Jahren 1
Ja, das funktioniert, genau so, als würde ich in das Benutzerverzeichnis in der Skriptdatei wechseln. Ich versuche, dass es nur mit dem einen Befehl funktioniert;) NaturalBornCamper vor 6 Jahren 0

0 Antworten auf die Frage