summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlambroslambrou@chromium.org <lambroslambrou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-11 10:56:18 +0000
committerlambroslambrou@chromium.org <lambroslambrou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-11 10:56:18 +0000
commit8383d2bab03519f152fc410febc2e91d0e22ad2f (patch)
tree27c59aec0acf0eea6a984dcdf2603ab5002a657f
parent34a32ef2fdc9cd730b133705d455c7beea62222d (diff)
downloadchromium_src-8383d2bab03519f152fc410febc2e91d0e22ad2f.zip
chromium_src-8383d2bab03519f152fc410febc2e91d0e22ad2f.tar.gz
chromium_src-8383d2bab03519f152fc410febc2e91d0e22ad2f.tar.bz2
Use sudo in remoting init.d script to get a clean per-user environment
Using 'sudo' to start the per-user process ensures the ulimits (and hopefully other environment settings) are set properly. BUG=169802 Review URL: https://chromiumcodereview.appspot.com/15848019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205486 0039d316-1c4b-4281-b951-d872f2087c98
-rwxr-xr-xremoting/host/installer/linux/debian/chrome-remote-desktop.init23
1 files changed, 15 insertions, 8 deletions
diff --git a/remoting/host/installer/linux/debian/chrome-remote-desktop.init b/remoting/host/installer/linux/debian/chrome-remote-desktop.init
index 4230632..2fc0d0d 100755
--- a/remoting/host/installer/linux/debian/chrome-remote-desktop.init
+++ b/remoting/host/installer/linux/debian/chrome-remote-desktop.init
@@ -46,25 +46,32 @@ run_with_timeout() {
return 1
}
+# Usage: run_and_ignore_error [--login] user program [args...]
+# --login:
+# Run program in a clean login shell. This requires backgrounding, since
+# the user's .profile or .login script might be run, which might contain
+# blocking commands.
run_and_ignore_error() {
+ login_options=""
+ if [ "$1" = "--login" ]; then
+ login_options="-b -i"
+ shift
+ fi
+
user=$1
shift
- exec=$1
- shift
set +e
if [ "$(whoami)" = "$user" ]; then
- "$exec" "$@"
+ "$@"
else
- shell="$(getent passwd "$user" | cut -d: -f7)"
- USER="$user" LOGNAME="$user" SHELL="$shell" start-stop-daemon \
- --chuid "$user" --exec "$exec" --start -- "$@"
+ sudo -u "$user" $login_options "$@"
fi
}
do_start() {
log_begin_msg "Starting Chrome Remote Desktop host for $1..."
- run_and_ignore_error $1 "$HOST_PATH" --start
+ run_and_ignore_error --login $1 "$HOST_PATH" --start
log_end_msg $?
}
@@ -83,7 +90,7 @@ do_reload() {
do_restart() {
log_begin_msg "Restarting Chrome Remote Desktop host for $1..."
run_and_ignore_error $1 "$HOST_PATH" --stop
- run_and_ignore_error $1 "$HOST_PATH" --start
+ run_and_ignore_error --login $1 "$HOST_PATH" --start
log_end_msg $?
}