131 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			131 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| 
								 | 
							
								#!/usr/bin/env bash
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# This script is derived from https://github.com/neutrinolabs/xrdp/sesman/startwm.sh.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# This script is an example. You might need to edit this script
							 | 
						||
| 
								 | 
							
								# depending on your distro if it doesn't work for you.
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Uncomment the following line for debug:
							 | 
						||
| 
								 | 
							
								# exec xterm
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Execution sequence for interactive login shell - pseudocode
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# IF /etc/profile is readable THEN
							 | 
						||
| 
								 | 
							
								#     execute ~/.bash_profile
							 | 
						||
| 
								 | 
							
								# END IF
							 | 
						||
| 
								 | 
							
								# IF ~/.bash_profile is readable THEN
							 | 
						||
| 
								 | 
							
								#     execute ~/.bash_profile
							 | 
						||
| 
								 | 
							
								# ELSE
							 | 
						||
| 
								 | 
							
								#     IF ~/.bash_login is readable THEN
							 | 
						||
| 
								 | 
							
								#         execute ~/.bash_login
							 | 
						||
| 
								 | 
							
								#     ELSE
							 | 
						||
| 
								 | 
							
								#         IF ~/.profile is readable THEN
							 | 
						||
| 
								 | 
							
								#             execute ~/.profile
							 | 
						||
| 
								 | 
							
								#         END IF
							 | 
						||
| 
								 | 
							
								#     END IF
							 | 
						||
| 
								 | 
							
								# END IF
							 | 
						||
| 
								 | 
							
								pre_start()
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  if [ -r /etc/profile ]; then
							 | 
						||
| 
								 | 
							
								    . /etc/profile
							 | 
						||
| 
								 | 
							
								  fi
							 | 
						||
| 
								 | 
							
								  if [ -r ~/.bash_profile ]; then
							 | 
						||
| 
								 | 
							
								    . ~/.bash_profile
							 | 
						||
| 
								 | 
							
								  else
							 | 
						||
| 
								 | 
							
								    if [ -r ~/.bash_login ]; then
							 | 
						||
| 
								 | 
							
								      . ~/.bash_login
							 | 
						||
| 
								 | 
							
								    else
							 | 
						||
| 
								 | 
							
								      if [ -r ~/.profile ]; then
							 | 
						||
| 
								 | 
							
								        . ~/.profile
							 | 
						||
| 
								 | 
							
								      fi
							 | 
						||
| 
								 | 
							
								    fi
							 | 
						||
| 
								 | 
							
								  fi
							 | 
						||
| 
								 | 
							
								  return 0
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# When loging out from the interactive shell, the execution sequence is:
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# IF ~/.bash_logout exists THEN
							 | 
						||
| 
								 | 
							
								#     execute ~/.bash_logout
							 | 
						||
| 
								 | 
							
								# END IF
							 | 
						||
| 
								 | 
							
								post_start()
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  if [ -r ~/.bash_logout ]; then
							 | 
						||
| 
								 | 
							
								    . ~/.bash_logout
							 | 
						||
| 
								 | 
							
								  fi
							 | 
						||
| 
								 | 
							
								  return 0
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#start the window manager
							 | 
						||
| 
								 | 
							
								wm_start()
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  if [ -r /etc/default/locale ]; then
							 | 
						||
| 
								 | 
							
								    . /etc/default/locale
							 | 
						||
| 
								 | 
							
								    export LANG LANGUAGE
							 | 
						||
| 
								 | 
							
								  fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  # debian
							 | 
						||
| 
								 | 
							
								  if [ -r /etc/X11/Xsession ]; then
							 | 
						||
| 
								 | 
							
								    pre_start
							 | 
						||
| 
								 | 
							
								    . /etc/X11/Xsession
							 | 
						||
| 
								 | 
							
								    post_start
							 | 
						||
| 
								 | 
							
								    exit 0
							 | 
						||
| 
								 | 
							
								  fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  # alpine
							 | 
						||
| 
								 | 
							
								  # Don't use /etc/X11/xinit/Xsession - it doesn't work
							 | 
						||
| 
								 | 
							
								  if [ -f /etc/alpine-release ]; then
							 | 
						||
| 
								 | 
							
								    if [ -f /etc/X11/xinit/xinitrc ]; then
							 | 
						||
| 
								 | 
							
								        pre_start
							 | 
						||
| 
								 | 
							
								        /etc/X11/xinit/xinitrc
							 | 
						||
| 
								 | 
							
								        post_start
							 | 
						||
| 
								 | 
							
								    else
							 | 
						||
| 
								 | 
							
								        echo "** xinit package isn't installed" >&2
							 | 
						||
| 
								 | 
							
								        exit 1
							 | 
						||
| 
								 | 
							
								    fi
							 | 
						||
| 
								 | 
							
								  fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  # el
							 | 
						||
| 
								 | 
							
								  if [ -r /etc/X11/xinit/Xsession ]; then
							 | 
						||
| 
								 | 
							
								    pre_start
							 | 
						||
| 
								 | 
							
								    . /etc/X11/xinit/Xsession
							 | 
						||
| 
								 | 
							
								    post_start
							 | 
						||
| 
								 | 
							
								    exit 0
							 | 
						||
| 
								 | 
							
								  fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  # suse
							 | 
						||
| 
								 | 
							
								  if [ -r /etc/X11/xdm/Xsession ]; then
							 | 
						||
| 
								 | 
							
								    # since the following script run a user login shell,
							 | 
						||
| 
								 | 
							
								    # do not execute the pseudo login shell scripts
							 | 
						||
| 
								 | 
							
								    . /etc/X11/xdm/Xsession
							 | 
						||
| 
								 | 
							
								    exit 0
							 | 
						||
| 
								 | 
							
								  elif [ -r /usr/etc/X11/xdm/Xsession ]; then
							 | 
						||
| 
								 | 
							
								    . /usr/etc/X11/xdm/Xsession
							 | 
						||
| 
								 | 
							
								    exit 0
							 | 
						||
| 
								 | 
							
								  fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  pre_start
							 | 
						||
| 
								 | 
							
								  xterm
							 | 
						||
| 
								 | 
							
								  post_start
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#. /etc/environment
							 | 
						||
| 
								 | 
							
								#export PATH=$PATH
							 | 
						||
| 
								 | 
							
								#export LANG=$LANG
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# change PATH to be what your environment needs usually what is in
							 | 
						||
| 
								 | 
							
								# /etc/environment
							 | 
						||
| 
								 | 
							
								#PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
							 | 
						||
| 
								 | 
							
								#export PATH=$PATH
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# for PATH and LANG from /etc/environment
							 | 
						||
| 
								 | 
							
								# pam will auto process the environment file if /etc/pam.d/xrdp-sesman
							 | 
						||
| 
								 | 
							
								# includes
							 | 
						||
| 
								 | 
							
								# auth       required     pam_env.so readenv=1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								wm_start
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exit 1
							 |