ignacio82

x11docker 2

Nov 15th, 2019
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 72.32 KB | None | 0 0
  1. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/stderr <==
  2.  
  3. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/stdout <==
  4.  
  5. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log <==
  6.  
  7. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/message.log <==
  8.  
  9. DEBUGNOTE[07:43:41,715]: check_host(): ps can watch root processes: yes
  10. x11docker[07:43:41,730]: Image name: rstudioxhost:verse
  11. Container command:
  12.  
  13. x11docker WARNING: User ignacio is member of group docker.
  14. That allows unprivileged processes on host to gain root privileges.
  15.  
  16. DEBUGNOTE[07:43:42,102]: storeinfo(): cache=/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472
  17. DEBUGNOTE[07:43:42,115]: storeinfo(): stdout=/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/stdout
  18. DEBUGNOTE[07:43:42,128]: storeinfo(): stderr=/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/stderr
  19. DEBUGNOTE[07:43:42,166]: storeinfo(): x11dockerpid=129655
  20. DEBUGNOTE[07:43:42,231]:
  21. x11docker version: 6.4.0
  22. docker version: Docker version 19.03.4, build 9013bf583a
  23. Host system: "Debian GNU/Linux bullseye/sid"
  24. Command: '/usr/bin/x11docker' '--nxagent' 'rstudioxhost:verse'
  25. Parsed options: --nxagent -- 'rstudioxhost:verse'
  26. DEBUGNOTE[07:43:42,237]: Dependency check for --nxagent: 0
  27. DEBUGNOTE[07:43:42,241]: Dependencies of --nxagent already checked: 0
  28. DEBUGNOTE[07:43:42,245]: Dependencies of --nxagent already checked: 0
  29. DEBUGNOTE[07:43:42,249]: storeinfo(): xserver=--nxagent
  30. x11docker note: A few applications do not work well with --nxagent.
  31. In that case, please try another X server option like --xephyr or --xpra.
  32.  
  33.  
  34. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/xinit.log <==
  35.  
  36. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/stderr <==
  37.  
  38. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/stdout <==
  39.  
  40. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log <==
  41.  
  42. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/message.log <==
  43.  
  44. DEBUGNOTE[07:43:41,715]: check_host(): ps can watch root processes: yes
  45. x11docker[07:43:41,730]: Image name: rstudioxhost:verse
  46. Container command:
  47.  
  48. x11docker WARNING: User ignacio is member of group docker.
  49. That allows unprivileged processes on host to gain root privileges.
  50.  
  51. DEBUGNOTE[07:43:42,102]: storeinfo(): cache=/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472
  52. DEBUGNOTE[07:43:42,115]: storeinfo(): stdout=/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/stdout
  53. DEBUGNOTE[07:43:42,128]: storeinfo(): stderr=/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/stderr
  54. DEBUGNOTE[07:43:42,166]: storeinfo(): x11dockerpid=129655
  55. DEBUGNOTE[07:43:42,231]:
  56. x11docker version: 6.4.0
  57. docker version: Docker version 19.03.4, build 9013bf583a
  58. Host system: "Debian GNU/Linux bullseye/sid"
  59. Command: '/usr/bin/x11docker' '--nxagent' 'rstudioxhost:verse'
  60. Parsed options: --nxagent -- 'rstudioxhost:verse'
  61. DEBUGNOTE[07:43:42,237]: Dependency check for --nxagent: 0
  62. DEBUGNOTE[07:43:42,241]: Dependencies of --nxagent already checked: 0
  63. DEBUGNOTE[07:43:42,245]: Dependencies of --nxagent already checked: 0
  64. DEBUGNOTE[07:43:42,249]: storeinfo(): xserver=--nxagent
  65. x11docker note: A few applications do not work well with --nxagent.
  66. In that case, please try another X server option like --xephyr or --xpra.
  67.  
  68.  
  69. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/xinit.log <==
  70.  
  71. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/message.log <==
  72. DEBUGNOTE[07:43:42,325]: waitforlogentry(): tailstdout: Waiting for logentry "x11docker=ready" in store.info
  73. DEBUGNOTE[07:43:42,326]: waitforlogentry(): tailstderr: Waiting for logentry "x11docker=ready" in store.info
  74. DEBUGNOTE[07:43:42,350]: storepid(): Stored pid '130091' of 'watchpidlist': 130091 pts/6 00:00:00 bash
  75. DEBUGNOTE[07:43:42,377]: storepid(): Stored pid '130104' of 'watchmessagefifo': 130104 pts/6 00:00:00 bash
  76. x11docker[07:43:42,438]: Virtual screen size: 3744x2064
  77.  
  78. x11docker[07:43:42,449]: Physical screen size:
  79. Screen 0: minimum 8 x 8, current 3840 x 2160, maximum 32767 x 32767
  80.  
  81. x11docker[07:43:42,460]: Detected host window manager: cinnamon --sm-disable
  82.  
  83. DEBUGNOTE[07:43:42,488]: storeinfo(): DISPLAY=:108
  84. DEBUGNOTE[07:43:42,500]: storeinfo(): XAUTHORITY=/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client
  85. DEBUGNOTE[07:43:42,511]: storeinfo(): XSOCKET=/tmp/.X11-unix/X108
  86. DEBUGNOTE[07:43:42,523]: storeinfo(): XDG_RUNTIME_DIR=/run/user/738202
  87. DEBUGNOTE[07:43:42,535]: storeinfo(): Xenv= DISPLAY=:108 XAUTHORITY=/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client XSOCKET=/tmp/.X11-unix/X108 XDG_RUNTIME_DIR=/run/user/738202
  88. DEBUGNOTE[07:43:42,585]: --nxagent: Additional nxagent options: nx/nx,clipboard=none,geometry=3744x2064,keyboard=evdev/us:108
  89. DEBUGNOTE[07:43:42,593]: X server command:
  90. /usr/bin/nxagent :108 \
  91. -noshmem \
  92. -noshpix \
  93. -extension Composite -extension COMPOSITE \
  94. -extension XTEST -tst \
  95. -dpms \
  96. -s off \
  97. -auth /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/Xauthority.server \
  98. -nolisten tcp \
  99. -dpi 96 \
  100. -norootlessexit \
  101. -verbose \
  102. -ac \
  103. -options /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/nxagent.options \
  104. -keystrokefile /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/nxagent.keys \
  105. -R
  106. x11docker[07:43:42,721]: --init: Found tini binary: /usr/bin/docker-init
  107.  
  108. DEBUGNOTE[07:43:42,727]: storeinfo(): tini=/usr/bin/docker-init
  109. DEBUGNOTE[07:43:42,741]: Users and terminal:
  110. x11docker was started by: ignacio
  111. As host user serves (running X, storing cache): ignacio
  112. Container user will be: ignacio
  113. Container user password: x11docker
  114. Getting permission to run docker with: eval
  115. Terminal for password frontend: bash -c
  116. Running in a terminal: yes
  117. Running on console: no
  118. Running over SSH: no
  119. Running sourced: no
  120. bash $-: hB
  121. DEBUGNOTE[07:43:42,746]: storeinfo(): containername=x11docker_X108_rstudioxhost-verse_32621422472
  122. DEBUGNOTE[07:43:43,123]: Docker command:
  123. docker run --tty --rm --detach \
  124. --name x11docker_X108_rstudioxhost-verse_32621422472 \
  125. --user 738202:89939 \
  126. --env USER=ignacio \
  127. --userns host \
  128. --cap-drop ALL \
  129. --security-opt no-new-privileges \
  130. --security-opt label=type:container_runtime_t \
  131. --volume '/usr/bin/docker-init':'/usr/local/bin/tini':ro \
  132. --tmpfs /run --tmpfs /run/lock \
  133. --volume '/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share':'/x11docker':rw \
  134. --volume '/tmp/.X11-unix/X108':'/X108':rw \
  135. --workdir '/tmp' \
  136. --entrypoint env \
  137. --env 'container=docker' \
  138. --env 'XAUTHORITY=/x11docker/Xauthority.client' \
  139. --env 'DISPLAY=:108' \
  140. --env 'XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR' \
  141. -- rstudioxhost:verse /usr/local/bin/tini -- /bin/sh - /x11docker/containerrc
  142. x11docker[07:43:43,347]: Generated dockerrc:
  143. 1 #! /usr/bin/env bash
  144. 2
  145. 3 # dockerrc:
  146. 4 # This script runs as root (or member of group docker) on host.
  147. 5 # - inspect image
  148. 6 # - pull image if needed
  149. 7 # - create containerrc
  150. 8 # - set up systemd/elogind cgroup if needed
  151. 9 # - run window manager in container or from host if needed
  152. 10
  153. 11 trap '' SIGINT
  154. 12
  155. 13 askyesno ()
  156. 14 {
  157. 15 local Choice;
  158. 16 read -t60 -n1 -p "(timeout after 60s assuming no) [Y|n]" Choice;
  159. 17 [ "$?" = '0' ] && {
  160. 18 [[ "$Choice" == [YyJj]* ]] || [ -z "$Choice" ] && return 0
  161. 19 };
  162. 20 return 1
  163. 21 }
  164. 22 checkpid ()
  165. 23 {
  166. 24 [ -e "/proc/${1:-NONSENSE}" ]
  167. 25 }
  168. 26 escapestring ()
  169. 27 {
  170. 28 echo "${1:-}" | LC_ALL=C sed -e 's/[^a-zA-Z0-9,._+@=:/-]/\\&/g; 1{$s/^$/""/}; 1!s/^/"/; $!s/$/"/'
  171. 29 }
  172. 30 mysleep ()
  173. 31 {
  174. 32 sleep "${1:-1}" 2> /dev/null || sleep 1
  175. 33 }
  176. 34 pspid ()
  177. 35 {
  178. 36 LC_ALL=C ps -p "${1:-}" 2> /dev/null | grep -v 'TIME'
  179. 37 }
  180. 38 rmcr ()
  181. 39 {
  182. 40 case "${1:-}" in
  183. 41 "")
  184. 42 sed "s/$(printf "\r")//g"
  185. 43 ;;
  186. 44 *)
  187. 45 sed -i "s/$(printf "\r")//g" "${1:-}"
  188. 46 ;;
  189. 47 esac
  190. 48 }
  191. 49 rocknroll ()
  192. 50 {
  193. 51 [ -s "$Timetosaygoodbyefile" ] && return 1;
  194. 52 [ -e "$Timetosaygoodbyefile" ] || return 1;
  195. 53 return 0
  196. 54 }
  197. 55 saygoodbye ()
  198. 56 {
  199. 57 debugnote "time to say goodbye ($*)";
  200. 58 [ -e "$Timetosaygoodbyefile" ] && echo timetosaygoodbye >> $Timetosaygoodbyefile;
  201. 59 [ -e "$Timetosaygoodbyefifo" ] && echo timetosaygoodbye >> $Timetosaygoodbyefifo
  202. 60 }
  203. 61 storeinfo ()
  204. 62 {
  205. 63 [ -e "$Storeinfofile" ] || return 1;
  206. 64 case "${1:-}" in
  207. 65 dump)
  208. 66 grep "^${2:-}=" $Storeinfofile | sed "s/^${2:-}=//"
  209. 67 ;;
  210. 68 drop)
  211. 69 sed -i "/^${2:-}=/d" $Storeinfofile
  212. 70 ;;
  213. 71 test)
  214. 72 grep -q "^${2:-}=" $Storeinfofile
  215. 73 ;;
  216. 74 *)
  217. 75 debugnote "storeinfo(): ${1:-}";
  218. 76 grep -q "^$(echo "${1:-}" | cut -d= -f1)=" $Storeinfofile && {
  219. 77 sed -i "/^$(echo "${1:-}" | cut -d= -f1)=/d" $Storeinfofile
  220. 78 };
  221. 79 echo "${1:-}" >> $Storeinfofile
  222. 80 ;;
  223. 81 esac
  224. 82 }
  225. 83 storepid ()
  226. 84 {
  227. 85 case "${1:-}" in
  228. 86 dump)
  229. 87 grep -w "${2:-}" "$Storepidfile" | cut -d' ' -f1
  230. 88 ;;
  231. 89 test)
  232. 90 grep -q -w "${2:-}" "$Storepidfile"
  233. 91 ;;
  234. 92 *)
  235. 93 echo "${1:-NOPID}" "${2:-NONAME}" >> "$Storepidfile";
  236. 94 debugnote "storepid(): Stored pid '${1:-}' of '${2:-}': $(pspid ${1:-} ||:)"
  237. 95 ;;
  238. 96 esac
  239. 97 }
  240. 98 waitforlogentry ()
  241. 99 {
  242. 100 local Startzeit Uhrzeit Dauer Count=0 Schlaf;
  243. 101 local Errorkeys="${4:-}";
  244. 102 local Warten="${5:-60}";
  245. 103 Startzeit="$(date +%s ||:)";
  246. 104 Startzeit="${Startzeit:-0}";
  247. 105 [ "$Warten" = "infinity" ] && Warten=32000;
  248. 106 debugnote "waitforlogentry(): ${1:-}: Waiting for logentry \"${3:-}\" in $(basename ${2:-})";
  249. 107 while ! grep -q "${3:-}" < "${2:-}"; do
  250. 108 Count="$(( $Count + 1 ))";
  251. 109 Uhrzeit="$(date +%s ||:)";
  252. 110 Uhrzeit="${Uhrzeit:-0}";
  253. 111 Dauer="$(( $Uhrzeit - $Startzeit ))";
  254. 112 Schlaf="$(( $Count / 10 ))";
  255. 113 [ "$Schlaf" = "0" ] && Schlaf="0.5";
  256. 114 mysleep "$Schlaf";
  257. 115 [ "$Dauer" -gt "10" ] && debugnote "waitforlogentry(): ${1:-}: Waiting since ${Dauer}s for log entry \"${3:-}\" in $(basename ${2:-})";
  258. 116 [ "$Dauer" -gt "$Warten" ] && error "waitforlogentry(): ${1:-}: Timeout waiting for log entry \"${3:-}\" in $(basename ${2:-})
  259. 117 Last lines of logfile $(basename ${2:-}):
  260. 118 $(tail "${2:-}")";
  261. 119 [ "$Errorkeys" ] && grep -i -q -E "$Errorkeys" < "${2:-}" && error "waitforlogentry(): ${1:-}: Found error message in logfile.
  262. 120 Last lines of logfile $(basename ${2:-}):
  263. 121 $(tail "${2:-}")";
  264. 122 rocknroll || {
  265. 123 debugnote "waitforlogentry(): ${1:-}: Stopped waiting for ${3:-} in $(basename ${2:-}) due to terminating signal.";
  266. 124 return 1
  267. 125 };
  268. 126 done;
  269. 127 debugnote "waitforlogentry(): ${1:-}: Found log entry \"${3:-}\" in $(basename ${2:-}).";
  270. 128 return 0
  271. 129 }
  272. 130
  273. 131 warning() {
  274. 132 echo "$*:WARNING" | sed "s/\$/ /" >>$Messagefile
  275. 133 }
  276. 134 note() {
  277. 135 echo "$*:NOTE" | sed "s/\$/ /" >>$Messagefile
  278. 136 }
  279. 137 verbose() {
  280. 138 echo "$*:VERBOSE" | sed "s/\$/ /" >>$Messagefile
  281. 139 }
  282. 140 debugnote() {
  283. 141 echo "$*:DEBUGNOTE" | sed "s/\$/ /" >>$Messagefile
  284. 142 }
  285. 143 error() {
  286. 144 echo "$*:ERROR" | sed "s/\$/ /" >>$Messagefile
  287. 145 exit 64
  288. 146 }
  289. 147 stdout() {
  290. 148 echo "$*:STDOUT" | sed "s/\$/ /" >>$Messagefile
  291. 149 }
  292. 150
  293. 151 Containercommand=""
  294. 152 Imagename="rstudioxhost:verse"
  295. 153 Messagefile='/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/message.fifo'
  296. 154 Newxenv=' DISPLAY=:108 XAUTHORITY=/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client XSOCKET=/tmp/.X11-unix/X108 XDG_RUNTIME_DIR=/run/user/738202'
  297. 155 export PATH='/usr/local/buildtools/java/jdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games'
  298. 156 Storeinfofile='/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/store.info'
  299. 157 Storepidfile='/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/store.pids'
  300. 158 Timetosaygoodbyefile='/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/timetosaygoodbye'
  301. 159 Timetosaygoodbyefifo='/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/timetosaygoodbye.fifo'
  302. 160 Xserver='--nxagent'
  303. 161 Workdir=''
  304. 162
  305. 163 Containerid=
  306. 164 Containerip=
  307. 165 Dockerlogspid=''
  308. 166 Dockerpull=
  309. 167 Exec=
  310. 168 Entrypoint=
  311. 169 Failure=
  312. 170 Imageuser=
  313. 171 Inspect=
  314. 172 Line=
  315. 173 Pid1pid=
  316. 174 Runtime=
  317. 175 Signal=
  318. 176 Windowmanager=
  319. 177 Windowmanagercommand=
  320. 178 Wmcontainerid=
  321. 179 Wmdockercommand=
  322. 180 Workdir=
  323. 181 debugnote 'Running dockerrc: Setup as root or as user docker on host.'
  324. 182
  325. 183
  326. 184 # Check whether docker daemon is running, get docker info
  327. 185 docker info >>/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/docker.info 2>>/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log || {
  328. 186 error "Calling docker daemon failed.
  329. 187 Is docker daemon running at all?
  330. 188 Try to start docker daemon with: systemctl start docker
  331. 189 Last lines of log:
  332. 190 $(rmcr < '/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log' | tail)"
  333. 191 }
  334. 192
  335. 193 # Check default runtime
  336. 194 Runtime="$(grep 'Default Runtime' < '/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/docker.info' | awk '{print $3}')"
  337. 195 debugnote "dockerrc: Found default Runtime: $Runtime"
  338. 196 debugnote "dockerrc: All $(grep 'Runtimes' < '/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/docker.info')"
  339. 197 [ "$Runtime" != '' ] && {
  340. 198 case $Runtime in
  341. 199 kata-runtime) warning 'Found default docker runtime kata-runtime.
  342. 200 Please run x11docker with --runtime=kata-runtime to avoid issues.' ;;
  343. 201 nvidia) [ 'no' = 'yes' ] && warning 'Option --gpu: Found default docker runtime nvidia.
  344. 202 Please run x11docker with --runtime=nvidia to avoid issues.' ;;
  345. 203 runc|crun) ;;
  346. 204 *) warning "Found unknown container runtime: $Runtime
  347. 205 Please report at: https://github.com/mviereck/x11docker" ;;
  348. 206 esac
  349. 207 }
  350. 208 debugnote "dockerrc: Container Runtime: $Runtime"
  351. 209 storeinfo "runtime=$Runtime"
  352. 210
  353. 211 # Refresh images.list for x11docker-gui
  354. 212 docker images 2>>/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log | grep -v REPOSITORY | awk '{print $1 ":" $2}' >>/home/ignacio/.cache/x11docker/docker.imagelist.sort
  355. 213 rmcr /home/ignacio/.cache/x11docker/docker.imagelist.sort
  356. 214 while read -r Line ; do
  357. 215 grep -q "<none>" <<<$Line || echo $Line >> /home/ignacio/.cache/x11docker/docker.imagelist
  358. 216 done < <(sort < /home/ignacio/.cache/x11docker/docker.imagelist.sort)
  359. 217 rm /home/ignacio/.cache/x11docker/docker.imagelist.sort
  360. 218
  361. 219 # Check if image rstudioxhost:verse is available locally
  362. 220 Dockerpull=no
  363. 221 grep -x -q 'rstudioxhost:verse' < /home/ignacio/.cache/x11docker/docker.imagelist || grep -x -q 'rstudioxhost:verse:latest' < /home/ignacio/.cache/x11docker/docker.imagelist || {
  364. 222 docker inspect rstudioxhost:verse >>/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log 2>&1 || {
  365. 223 echo 'Image rstudioxhost:verse not found locally.' >&2
  366. 224 echo 'Do you want to pull it from docker hub?' >&2
  367. 225 askyesno && Dockerpull=yes || error "Image 'rstudioxhost:verse' not available locally and not pulled from docker hub."
  368. 226 }
  369. 227 }
  370. 228
  371. 229 rocknroll || exit 64
  372. 230
  373. 231 [ "$Dockerpull" = 'yes' ] && {
  374. 232 note "Pulling image 'rstudioxhost:verse' from docker hub"
  375. 233 docker pull rstudioxhost:verse 1>&2 || error "Pulling docker image 'rstudioxhost:verse' seems to have failed!"
  376. 234 }
  377. 235
  378. 236 rocknroll || exit 64
  379. 237
  380. 238 Inspect="$(docker inspect rstudioxhost:verse --format='{{.Config.Entrypoint}}{{.Config.Cmd}}[{{.Config.User}}][{{.Config.WorkingDir}}]')"
  381. 239
  382. 240 # Check CMD
  383. 241 [ -z "$Containercommand" ] && {
  384. 242 # extract image command from image if not given on cli
  385. 243 Containercommand="$(cut -d] -f2 <<< "$Inspect" | cut -d[ -f2)"
  386. 244 debugnote "dockerrc: Image CMD: $Containercommand"
  387. 245 echo "$Containercommand" | grep -q /x11docker/containerrc && error 'Recursion error: Found CMD /x11docker/containerrc in image.
  388. 246 Did you use docker commit with an x11docker container?
  389. 247 Please build new images with a Dockerfile instead of using docker commit,
  390. 248 or provide a different container command.'
  391. 249 }
  392. 250
  393. 251 # Check USER
  394. 252 Imageuser="$(cut -d[ -f4 <<< "$Inspect" | cut -d] -f1)"
  395. 253 debugnote "dockerrc: Image USER: $Imageuser"
  396. 254 [ "$Imageuser" ] && note "Found 'USER $Imageuser' in image.
  397. 255 If you want to run with user $Imageuser instead of host user ignacio,
  398. 256 than run with --user=RETAIN."
  399. 257 storeinfo containeruser="ignacio"
  400. 258
  401. 259 # Check ENTRYPOINT
  402. 260 Entrypoint="$(cut -d] -f1 <<< "$Inspect" | cut -d[ -f2)"
  403. 261 debugnote "dockerrc: Image ENTRYPOINT: $Entrypoint"
  404. 262 echo "$Entrypoint" | grep -qE 'tini|init|systemd' && {
  405. 263 note "There seems to be an init system in ENTRYPOINT of image:
  406. 264 $Entrypoint
  407. 265 Will disable it as x11docker already runs an init with option --tini.
  408. 266 To allow this ENTRYPOINT, run x11docker with option --init=none."
  409. 267 Entrypoint=
  410. 268 }
  411. 269
  412. 270 # Check WORKDIR
  413. 271 Workdir="$(cut -d[ -f5 <<< "$Inspect" | cut -d] -f1)"
  414. 272 debugnote "dockerrc: Image WORKDIR: $Workdir"
  415. 273 [ "$Workdir" ] && note "Found 'WORKDIR $Workdir' in image.
  416. 274 You can change it with option --workdir=DIR."
  417. 275
  418. 276 [ -z "$Containercommand$Entrypoint" ] && error 'No container command specified and no CMD or ENTRYPOINT found in image.'
  419. 277
  420. 278 ######## Create containerrc ########
  421. 279
  422. 280 { echo '#! /bin/sh'
  423. 281 echo ''
  424. 282 echo '# containerrc'
  425. 283 echo '# Created startscript for docker run used as container command.'
  426. 284 echo '# Runs as unprivileged user in container.'
  427. 285 echo ''
  428. 286 echo 'exec 6>&1 7>&2'
  429. 287 echo 'exec >>/x11docker/container.log 2>&1'
  430. 288 echo ''
  431. 289 echo 'mysleep ()
  432. 290 {
  433. 291 sleep "${1:-1}" 2> /dev/null || sleep 1
  434. 292 }'
  435. 293 echo 'rocknroll ()
  436. 294 {
  437. 295 [ -s "$Timetosaygoodbyefile" ] && return 1;
  438. 296 [ -e "$Timetosaygoodbyefile" ] || return 1;
  439. 297 return 0
  440. 298 }'
  441. 299 echo 'saygoodbye ()
  442. 300 {
  443. 301 debugnote "time to say goodbye ($*)";
  444. 302 [ -e "$Timetosaygoodbyefile" ] && echo timetosaygoodbye >> $Timetosaygoodbyefile;
  445. 303 [ -e "$Timetosaygoodbyefifo" ] && echo timetosaygoodbye >> $Timetosaygoodbyefifo
  446. 304 }'
  447. 305 echo 'storeinfo ()
  448. 306 {
  449. 307 [ -e "$Storeinfofile" ] || return 1;
  450. 308 case "${1:-}" in
  451. 309 dump)
  452. 310 grep "^${2:-}=" $Storeinfofile | sed "s/^${2:-}=//"
  453. 311 ;;
  454. 312 drop)
  455. 313 sed -i "/^${2:-}=/d" $Storeinfofile
  456. 314 ;;
  457. 315 test)
  458. 316 grep -q "^${2:-}=" $Storeinfofile
  459. 317 ;;
  460. 318 *)
  461. 319 debugnote "storeinfo(): ${1:-}";
  462. 320 grep -q "^$(echo "${1:-}" | cut -d= -f1)=" $Storeinfofile && {
  463. 321 sed -i "/^$(echo "${1:-}" | cut -d= -f1)=/d" $Storeinfofile
  464. 322 };
  465. 323 echo "${1:-}" >> $Storeinfofile
  466. 324 ;;
  467. 325 esac
  468. 326 }'
  469. 327 echo 'waitforlogentry ()
  470. 328 {
  471. 329 local Startzeit Uhrzeit Dauer Count=0 Schlaf;
  472. 330 local Errorkeys="${4:-}";
  473. 331 local Warten="${5:-60}";
  474. 332 Startzeit="$(date +%s ||:)";
  475. 333 Startzeit="${Startzeit:-0}";
  476. 334 [ "$Warten" = "infinity" ] && Warten=32000;
  477. 335 debugnote "waitforlogentry(): ${1:-}: Waiting for logentry \"${3:-}\" in $(basename ${2:-})";
  478. 336 while ! grep -q "${3:-}" < "${2:-}"; do
  479. 337 Count="$(( $Count + 1 ))";
  480. 338 Uhrzeit="$(date +%s ||:)";
  481. 339 Uhrzeit="${Uhrzeit:-0}";
  482. 340 Dauer="$(( $Uhrzeit - $Startzeit ))";
  483. 341 Schlaf="$(( $Count / 10 ))";
  484. 342 [ "$Schlaf" = "0" ] && Schlaf="0.5";
  485. 343 mysleep "$Schlaf";
  486. 344 [ "$Dauer" -gt "10" ] && debugnote "waitforlogentry(): ${1:-}: Waiting since ${Dauer}s for log entry \"${3:-}\" in $(basename ${2:-})";
  487. 345 [ "$Dauer" -gt "$Warten" ] && error "waitforlogentry(): ${1:-}: Timeout waiting for log entry \"${3:-}\" in $(basename ${2:-})
  488. 346 Last lines of logfile $(basename ${2:-}):
  489. 347 $(tail "${2:-}")";
  490. 348 [ "$Errorkeys" ] && grep -i -q -E "$Errorkeys" < "${2:-}" && error "waitforlogentry(): ${1:-}: Found error message in logfile.
  491. 349 Last lines of logfile $(basename ${2:-}):
  492. 350 $(tail "${2:-}")";
  493. 351 rocknroll || {
  494. 352 debugnote "waitforlogentry(): ${1:-}: Stopped waiting for ${3:-} in $(basename ${2:-}) due to terminating signal.";
  495. 353 return 1
  496. 354 };
  497. 355 done;
  498. 356 debugnote "waitforlogentry(): ${1:-}: Found log entry \"${3:-}\" in $(basename ${2:-}).";
  499. 357 return 0
  500. 358 }'
  501. 359 echo 'calculate() {'
  502. 360 echo ' LC_ALL=C printf %.3f\\n "$((10**9 * $@))e-9"'
  503. 361 echo '}'
  504. 362 echo '
  505. 363 warning() {
  506. 364 echo "$*:WARNING" | sed "s/\$/ /" >>$Messagefile
  507. 365 }
  508. 366 note() {
  509. 367 echo "$*:NOTE" | sed "s/\$/ /" >>$Messagefile
  510. 368 }
  511. 369 verbose() {
  512. 370 echo "$*:VERBOSE" | sed "s/\$/ /" >>$Messagefile
  513. 371 }
  514. 372 debugnote() {
  515. 373 echo "$*:DEBUGNOTE" | sed "s/\$/ /" >>$Messagefile
  516. 374 }
  517. 375 error() {
  518. 376 echo "$*:ERROR" | sed "s/\$/ /" >>$Messagefile
  519. 377 exit 64
  520. 378 }
  521. 379 stdout() {
  522. 380 echo "$*:STDOUT" | sed "s/\$/ /" >>$Messagefile
  523. 381 }'
  524. 382 echo 'Messagefile=/x11docker/message.fifo'
  525. 383 echo 'Storeinfofile=/x11docker/store.info'
  526. 384 echo 'Timetosaygoodbyefile=/x11docker/timetosaygoodbye'
  527. 385 echo ''
  528. 386 echo 'waitforlogentry containerrc $Storeinfofile containerrootrc=ready infinity'
  529. 387 echo 'debugnote "Running containerrc: Unprivileged user commands in container"'
  530. 388 echo ''
  531. 389 echo "Containercommand=\"$Containercommand\""
  532. 390 echo "Entrypoint=\"$Entrypoint\""
  533. 391 echo ''
  534. 392 echo 'verbose "containerrc: Container system:'
  535. 393 echo '$(cat /etc/os-release 2>&1 ||:)"'
  536. 394 echo ''
  537. 395 } >> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/containerrc
  538. 396 {
  539. 397 echo ''
  540. 398 echo '# USER and HOME'
  541. 399 echo 'Containeruser="$(storeinfo dump containeruser)"'
  542. 400 echo 'Containeruserhome="/fakehome/ignacio"'
  543. 401 echo 'export USER="$Containeruser"'
  544. 402 echo 'export HOME="$Containeruserhome"'
  545. 403 echo ''
  546. 404 echo '# XDG_RUNTIME_DIR'
  547. 405 echo 'Containeruseruid=$(id -u $Containeruser)'
  548. 406 echo 'export XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR'
  549. 407 echo '[ -e /run/user/$Containeruseruid ] && ln -s /run/user/$Containeruseruid $XDG_RUNTIME_DIR || mkdir -p -m700 $XDG_RUNTIME_DIR'
  550. 408 echo ''
  551. 409 echo 'mkdir -p $Containeruserhome'
  552. 410 echo '# Copy files from /etc/skel into empty HOME'
  553. 411 echo '[ -d /etc/skel ] && [ -z "$(ls -A "/fakehome/ignacio" 2>/dev/null | grep -v gnupg)" ] && {'
  554. 412 echo ' debugnote "containerrc: HOME is empty. Copying from /etc/skel"'
  555. 413 echo ' cp -n -R /etc/skel/. $Containeruserhome'
  556. 414 echo ' :'
  557. 415 echo '} || {'
  558. 416 echo ' debugnote "containerrc: HOME not empty. Not copying from /etc/skel"'
  559. 417 echo '}'
  560. 418 echo ''
  561. 419 echo '# Create softlink to X unix socket'
  562. 420 echo '[ -e /tmp/.X11-unix/X108 ] || ln -s /X108 /tmp/.X11-unix'
  563. 421 echo ''
  564. 422 echo 'unset WAYLAND_DISPLAY'
  565. 423 echo ''
  566. 424 echo 'export XDG_SESSION_TYPE=x11'
  567. 425 echo ''
  568. 426 echo ''
  569. 427 echo 'bash --version >/dev/null 2>&1 && export SHELL=/bin/bash || export SHELL=/bin/sh'
  570. 428 echo 'export TERM=xterm'
  571. 429 echo 'storeinfo test locale && export LANG="$(storeinfo dump locale)"'
  572. 430 echo '[ -e "/usr/share/zoneinfo/America/Los_Angeles" ] || export TZ=UTC+08'
  573. 431 echo '[ "$(date -Ihours)" != "2019-11-15T07-08:00" ] && export TZ=UTC+08'
  574. 432 echo '[ "$DEBIAN_FRONTEND" = noninteractive ] && unset DEBIAN_FRONTEND && export DEBIAN_FRONTEND'
  575. 433 echo '[ "$DEBIAN_FRONTEND" = newt ] && unset DEBIAN_FRONTEND && export DEBIAN_FRONTEND'
  576. 434 echo '# container environment (--env)'
  577. 435 echo "export 'container=docker'"
  578. 436 echo "export 'XAUTHORITY=/x11docker/Xauthority.client'"
  579. 437 echo "export 'DISPLAY=:108'"
  580. 438 echo "export 'XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR'"
  581. 439 echo ''
  582. 440 echo 'env >> /x11docker/container.environment'
  583. 441 echo 'verbose "Container environment:'
  584. 442 echo '$(env | sort)"'
  585. 443 echo ''
  586. 444 echo 'cd "$HOME"'
  587. 445 [ "$Workdir" ] && echo "[ -d \"$Workdir\" ] && cd \"$Workdir\" # WORKDIR in image"
  588. 446 echo ''
  589. 447 echo "debugnote \"containerrc: Running container command:
  590. 448 \$Dbus $Entrypoint $Containercommand
  591. 449 \""
  592. 450 echo ''
  593. 451 echo 'exec 1>&6 2>&7 6>&- 7>&-'
  594. 452 echo "$Exec \$Dbus $Entrypoint $Containercommand >>/x11docker/stdout 2>>/x11docker/stderr"
  595. 453 echo "storeinfo cmdexitcode=\$?"
  596. 454 } >> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/containerrc
  597. 455 ######## End of containerrc ########
  598. 456
  599. 457 # Write containerrc into x11docker.log
  600. 458 nl -ba >> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/x11docker.log < /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/containerrc
  601. 459
  602. 460 # Send signal to run X and wait for X to be ready
  603. 461 storeinfo readyforX=ready
  604. 462 waitforlogentry 'dockerrc' /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/xinit.log 'xinitrc is ready' 'xinit: giving up|unable to connect to X server|Connection refused|server error|Only console users are allowed'
  605. 463
  606. 464 rocknroll || exit 64
  607. 465
  608. 466
  609. 467 rocknroll || exit 64
  610. 468
  611. 469
  612. 470 #### run docker image ####
  613. 471 read Containerid < <(docker run --tty --rm --detach \
  614. 472 --name x11docker_X108_rstudioxhost-verse_32621422472 \
  615. 473 --user 738202:89939 \
  616. 474 --env USER=ignacio \
  617. 475 --userns host \
  618. 476 --cap-drop ALL \
  619. 477 --security-opt no-new-privileges \
  620. 478 --security-opt label=type:container_runtime_t \
  621. 479 --volume '/usr/bin/docker-init':'/usr/local/bin/tini':ro \
  622. 480 --tmpfs /run --tmpfs /run/lock \
  623. 481 --volume '/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share':'/x11docker':rw \
  624. 482 --volume '/tmp/.X11-unix/X108':'/X108':rw \
  625. 483 --workdir '/tmp' \
  626. 484 --entrypoint env \
  627. 485 --env 'container=docker' \
  628. 486 --env 'XAUTHORITY=/x11docker/Xauthority.client' \
  629. 487 --env 'DISPLAY=:108' \
  630. 488 --env 'XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR' \
  631. 489 -- rstudioxhost:verse /usr/local/bin/tini -- /bin/sh - /x11docker/containerrc 2>>/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log | rmcr)
  632. 490 ##########################
  633. 491
  634. 492
  635. 493 [ "$Containerid" ] || {
  636. 494 error "Startup of docker failed. Did not receive a container ID.
  637. 495
  638. 496 Last lines of container log:
  639. 497 $(rmcr < /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log | tail)"
  640. 498 }
  641. 499 storeinfo containerid="$Containerid"
  642. 500 # Wait for container to be ready
  643. 501 for ((Count=1 ; Count<=40 ; Count++)); do
  644. 502 docker exec x11docker_X108_rstudioxhost-verse_32621422472 sh -c : 2>&1 | rmcr >>/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log && { debugnote 'dockerrc: Container is up and running.' ; break ; } || debugnote "dockerrc: Container not ready on $Count. attempt, trying again."
  645. 503 rocknroll || exit 64
  646. 504 mysleep 0.1
  647. 505 done
  648. 506
  649. 507 # Wait for pid 1 in container
  650. 508 for ((Count=1 ; Count<=40 ; Count++)); do
  651. 509 Pid1pid="$(docker inspect --format '{{.State.Pid}}' x11docker_X108_rstudioxhost-verse_32621422472 2>>/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log | rmcr)"
  652. 510 debugnote "dockerrc: $Count. check for PID 1: $Pid1pid"
  653. 511 checkpid "$Pid1pid" && break
  654. 512 rocknroll || exit 64
  655. 513 mysleep 0.1
  656. 514 done
  657. 515 storeinfo pid1pid="$Pid1pid"
  658. 516
  659. 517 # Get IP of container
  660. 518 Containerip="$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' x11docker_X108_rstudioxhost-verse_32621422472 2>>/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log)"
  661. 519 storeinfo containerip=$Containerip
  662. 520
  663. 521 # Check log for startup failure
  664. 522 Failure="$(rmcr < /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log | grep -v grep | grep -E 'Error response from daemon|OCI runtime exec' ||:)"
  665. 523 [ "$Failure" ] && {
  666. 524 echo "$Failure" >>/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log
  667. 525 error "Got error message from docker daemon:
  668. 526 $Failure
  669. 527
  670. 528 Last lines of logfile:
  671. 529 "
  672. 530 }
  673. 531
  674. 532 # copy containerrootrc inside of container to avoid possible noexec of host home.
  675. 533 docker exec --tty x11docker_X108_rstudioxhost-verse_32621422472 sh -c 'cp /x11docker/containerrootrc /tmp/containerrootrc ; chmod 644 /tmp/containerrootrc' 2>&1 | rmcr >>/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log
  676. 534 # run container root setup. containerrc will wait until setup script is ready.
  677. 535 docker exec --tty -u root x11docker_X108_rstudioxhost-verse_32621422472 /bin/sh /tmp/containerrootrc 2>&1 | rmcr >>/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log
  678. 536
  679. 537 storeinfo dockerrc=ready
  680. 538
  681. 539 [ "$Containerid" ] || [ "$Wmcontainerid" ] && {
  682. 540 # wait for signal of finish()
  683. 541 read Signal </home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/dockerrc.stopfifo
  684. 542 [ "$Signal" = "stop" ] && {
  685. 543 [ "$Containerid" ] && docker stop $Containerid >> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log 2>&1 &
  686. 544 [ "$Wmcontainerid" ] && docker stop $Wmcontainerid >> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log 2>&1 &
  687. 545 [ "$Dockerlogspid" ] && kill $Dockerlogspid >> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log 2>&1 &
  688. 546 }
  689. 547 } & storepid $! dockerstopshell
  690. 548 exit 0
  691.  
  692. x11docker[07:43:43,452]: Generated containerrootrc:
  693. 1 #! /bin/sh
  694. 2
  695. 3 # containerrootrc
  696. 4 # This Script is executed as root in container.
  697. 5 # - Create container user
  698. 6 # - Time zone
  699. 7 # - Install NVIDIA driver if requested
  700. 8 # - Set up init system services and DBus for --init=systemd|openrc|runit|sysvinit
  701. 9
  702. 10 # redirect output to have it available before 'docker logs' starts. --init=runit (void) would eat up the output at all for unknown reasons.
  703. 11 exec 1>>/x11docker/container.log 2>&1
  704. 12
  705. 13 storeinfo ()
  706. 14 {
  707. 15 [ -e "$Storeinfofile" ] || return 1;
  708. 16 case "${1:-}" in
  709. 17 dump)
  710. 18 grep "^${2:-}=" $Storeinfofile | sed "s/^${2:-}=//"
  711. 19 ;;
  712. 20 drop)
  713. 21 sed -i "/^${2:-}=/d" $Storeinfofile
  714. 22 ;;
  715. 23 test)
  716. 24 grep -q "^${2:-}=" $Storeinfofile
  717. 25 ;;
  718. 26 *)
  719. 27 debugnote "storeinfo(): ${1:-}";
  720. 28 grep -q "^$(echo "${1:-}" | cut -d= -f1)=" $Storeinfofile && {
  721. 29 sed -i "/^$(echo "${1:-}" | cut -d= -f1)=/d" $Storeinfofile
  722. 30 };
  723. 31 echo "${1:-}" >> $Storeinfofile
  724. 32 ;;
  725. 33 esac
  726. 34 }
  727. 35 rocknroll ()
  728. 36 {
  729. 37 [ -s "$Timetosaygoodbyefile" ] && return 1;
  730. 38 [ -e "$Timetosaygoodbyefile" ] || return 1;
  731. 39 return 0
  732. 40 }
  733. 41
  734. 42 warning() {
  735. 43 echo "$*:WARNING" | sed "s/\$/ /" >>$Messagefile
  736. 44 }
  737. 45 note() {
  738. 46 echo "$*:NOTE" | sed "s/\$/ /" >>$Messagefile
  739. 47 }
  740. 48 verbose() {
  741. 49 echo "$*:VERBOSE" | sed "s/\$/ /" >>$Messagefile
  742. 50 }
  743. 51 debugnote() {
  744. 52 echo "$*:DEBUGNOTE" | sed "s/\$/ /" >>$Messagefile
  745. 53 }
  746. 54 error() {
  747. 55 echo "$*:ERROR" | sed "s/\$/ /" >>$Messagefile
  748. 56 exit 64
  749. 57 }
  750. 58 stdout() {
  751. 59 echo "$*:STDOUT" | sed "s/\$/ /" >>$Messagefile
  752. 60 }
  753. 61 Messagefile=/x11docker/message.fifo
  754. 62 Storeinfofile='/x11docker/store.info'
  755. 63 Timetosaygoodbyefile=/x11docker/timetosaygoodbye
  756. 64
  757. 65 debugnote 'Running containerrootrc: Setup as root in container'
  758. 66
  759. 67 # Check type of libc
  760. 68 ldd --version 2>&1 | grep -q 'musl libc' && Containerlibc='musl'
  761. 69 ldd --version 2>&1 | grep -q -E 'GLIBC|GNU libc' && Containerlibc='glibc'
  762. 70 debugnote "containerrootrc: Container libc: $Containerlibc"
  763. 71
  764. 72 # Prepare X environment
  765. 73 # Create some system dirs with needed permissions
  766. 74 mkdir -v -p /var/lib/dbus /var/run/dbus
  767. 75 mkdir -v -p -m 1777 /tmp/.ICE-unix /tmp/.X11-unix /tmp/.font-unix
  768. 76 chmod -c 1777 /tmp/.ICE-unix /tmp/.X11-unix /tmp/.font-unix
  769. 77 export DISPLAY=:108 XAUTHORITY=/x11docker/Xauthority.client
  770. 78 [ -e /X108 ] && ln -s /X108 /tmp/.X11-unix/X108
  771. 79 ls -l /X108
  772. 80 ls -l /tmp/.X11-unix/X108
  773. 81
  774. 82 # Time zone
  775. 83 [ ! -d /usr/share/zoneinfo ] && [ "$Containerlibc" = "glibc" ] && {
  776. 84 mkdir -p /usr/share/zoneinfo/America
  777. 85 cp '/x11docker/libc.localtime' '/usr/share/zoneinfo/America/Los_Angeles'
  778. 86 }
  779. 87 [ -e '/usr/share/zoneinfo/America/Los_Angeles' ] && ln -f -s '/usr/share/zoneinfo/America/Los_Angeles' /etc/localtime
  780. 88
  781. 89 # Container system
  782. 90 Containersystem="$(grep '^ID=' /etc/os-release 2>/dev/null | cut -d= -f2 || echo 'unknown')"
  783. 91 verbose "Container system ID: $Containersystem"
  784. 92
  785. 93 # Environment variables
  786. 94 export 'container=docker'
  787. 95 export 'XAUTHORITY=/x11docker/Xauthority.client'
  788. 96 export 'DISPLAY=:108'
  789. 97 export 'XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR'
  790. 98
  791. 99 # Check container user
  792. 100 Containeruser="$(storeinfo dump containeruser)"
  793. 101
  794. 102 mkdir -v -m 777 /fakehome
  795. 103 Containeruserhome='/fakehome/ignacio'
  796. 104
  797. 105 # Create user entry in /etc/passwd (and delete possibly existing same uid)
  798. 106 cat /etc/passwd | grep -v ':738202:' > /tmp/passwd
  799. 107
  800. 108 # Disable possible /etc/shadow passwords for other users
  801. 109 sed -i 's%:x:%:-:%' /tmp/passwd
  802. 110 echo 'ignacio:x:738202:89939:ignacio,,,:/fakehome/ignacio:/bin/sh' >> /tmp/passwd
  803. 111
  804. 112 rm /etc/passwd
  805. 113 mv /tmp/passwd /etc/passwd || warning 'Unable to change /etc/passwd. That may be a security risk.'
  806. 114
  807. 115 # Create password entry for container user in /etc/shadow
  808. 116 rm -v /etc/shadow || warning 'Cannot change /etc/shadow. That may be a security risk.'
  809. 117 echo "ignacio:sac19FwGGTx/A:17293:0:99999:7:::" > /etc/shadow
  810. 118 echo 'root:*:17219:0:99999:7:::' >> /etc/shadow
  811. 119
  812. 120 # Create user group entry (and delete possibly existing same gid)
  813. 121 cat /etc/group | grep -v ':89939:' > /tmp/group
  814. 122 echo "primarygroup:x:89939:" >> /tmp/group
  815. 123 mv /tmp/group /etc/group
  816. 124
  817. 125 # Create /etc/sudoers, delete /etc/sudoers.d. Overwrite possible sudo setups in image.
  818. 126 [ -e /etc/sudoers.d ] && rm -v -R /etc/sudoers.d
  819. 127 [ -e /etc/sudoers ] && rm -v /etc/sudoers
  820. 128 echo '# /etc/sudoers created by x11docker' > /etc/sudoers
  821. 129 echo 'root ALL=(ALL) ALL' >> /etc/sudoers
  822. 130
  823. 131 # Restrict PAM configuration of su and sudo
  824. 132 mkdir -p /etc/pam.d
  825. 133 [ -e /etc/pam.d/sudo ] && rm -v /etc/pam.d/sudo
  826. 134 case "$Containersystem" in
  827. 135 fedora)
  828. 136 echo '#%PAM-1.0' > /etc/pam.d/su
  829. 137 echo 'auth sufficient pam_rootok.so' >> /etc/pam.d/su
  830. 138 echo 'account sufficient pam_succeed_if.so uid = 0 use_uid quiet' >> /etc/pam.d/su
  831. 139 echo 'session include system-auth' >> /etc/pam.d/su
  832. 140 ;;
  833. 141 *)
  834. 142 echo '#%PAM-1.0' > /etc/pam.d/su
  835. 143 echo 'auth sufficient pam_rootok.so' >> /etc/pam.d/su # allow root to switch user without a password
  836. 144 echo '@include common-auth' >> /etc/pam.d/su
  837. 145 echo '@include common-account' >> /etc/pam.d/su
  838. 146 echo '@include common-session' >> /etc/pam.d/su
  839. 147 ;;
  840. 148 esac
  841. 149
  842. 150 # Set up container user groups
  843. 151 [ -e "$Containeruserhome" ] || {
  844. 152 # only create HOME here if capability CHOWN is allowed.
  845. 153 :>/tmp/chowntestfile
  846. 154 chown "$Containeruser" /tmp/chowntestfile && {
  847. 155 mkdir -v -p "$Containeruserhome"
  848. 156 chown "$Containeruser" "$Containeruserhome"
  849. 157 }
  850. 158 rm /tmp/chowntestfile
  851. 159 }
  852. 160
  853. 161 rocknroll || exit 64
  854. 162
  855. 163
  856. 164 # disable getty in inittab
  857. 165 [ -e /etc/inittab ] && sed -i 's/.*getty/##getty disabled by x11docker## \0/' /etc/inittab
  858. 166
  859. 167
  860. 168 rocknroll || exit 64
  861. 169
  862. 170 storeinfo containerrootrc=ready
  863. 171
  864.  
  865. x11docker[07:43:43,468]: Generated xinitrc:
  866. 1 #! /bin/sh
  867. 2 disable_xhost ()
  868. 3 {
  869. 4 local Line=;
  870. 5 command -v xhost > /dev/null || {
  871. 6 warning "Command 'xhost' not found.
  872. 7 Can not check for possibly allowed network access to X.
  873. 8 Please install 'xhost'.";
  874. 9 return 1
  875. 10 };
  876. 11 xhost 2>&1 | tail -n +2 /dev/stdin | while read -r Line; do
  877. 12 debugnote "xhost: Removing entry $Line";
  878. 13 xhost -$Line;
  879. 14 done;
  880. 15 xhost -;
  881. 16 [ "$(xhost 2>&1 | wc -l)" -gt "1" ] && {
  882. 17 warning "Remaining xhost permissions found on display ${DISPLAY:-}
  883. 18 $(xhost 2>&1 )";
  884. 19 return 1
  885. 20 };
  886. 21 xhost 2>&1 | grep "access control disabled" && {
  887. 22 warning "Failed to restrict xhost permissions.
  888. 23 Access to display ${DISPLAY:-} is allowed for everyone.";
  889. 24 return 1
  890. 25 };
  891. 26 return 0
  892. 27 }
  893. 28 pspid ()
  894. 29 {
  895. 30 LC_ALL=C ps -p "${1:-}" 2> /dev/null | grep -v 'TIME'
  896. 31 }
  897. 32 rocknroll ()
  898. 33 {
  899. 34 [ -s "$Timetosaygoodbyefile" ] && return 1;
  900. 35 [ -e "$Timetosaygoodbyefile" ] || return 1;
  901. 36 return 0
  902. 37 }
  903. 38 storeinfo ()
  904. 39 {
  905. 40 [ -e "$Storeinfofile" ] || return 1;
  906. 41 case "${1:-}" in
  907. 42 dump)
  908. 43 grep "^${2:-}=" $Storeinfofile | sed "s/^${2:-}=//"
  909. 44 ;;
  910. 45 drop)
  911. 46 sed -i "/^${2:-}=/d" $Storeinfofile
  912. 47 ;;
  913. 48 test)
  914. 49 grep -q "^${2:-}=" $Storeinfofile
  915. 50 ;;
  916. 51 *)
  917. 52 debugnote "storeinfo(): ${1:-}";
  918. 53 grep -q "^$(echo "${1:-}" | cut -d= -f1)=" $Storeinfofile && {
  919. 54 sed -i "/^$(echo "${1:-}" | cut -d= -f1)=/d" $Storeinfofile
  920. 55 };
  921. 56 echo "${1:-}" >> $Storeinfofile
  922. 57 ;;
  923. 58 esac
  924. 59 }
  925. 60 storepid ()
  926. 61 {
  927. 62 case "${1:-}" in
  928. 63 dump)
  929. 64 grep -w "${2:-}" "$Storepidfile" | cut -d' ' -f1
  930. 65 ;;
  931. 66 test)
  932. 67 grep -q -w "${2:-}" "$Storepidfile"
  933. 68 ;;
  934. 69 *)
  935. 70 echo "${1:-NOPID}" "${2:-NONAME}" >> "$Storepidfile";
  936. 71 debugnote "storepid(): Stored pid '${1:-}' of '${2:-}': $(pspid ${1:-} ||:)"
  937. 72 ;;
  938. 73 esac
  939. 74 }
  940. 75
  941. 76 warning() {
  942. 77 echo "$*:WARNING" | sed "s/\$/ /" >>$Messagefile
  943. 78 }
  944. 79 note() {
  945. 80 echo "$*:NOTE" | sed "s/\$/ /" >>$Messagefile
  946. 81 }
  947. 82 verbose() {
  948. 83 echo "$*:VERBOSE" | sed "s/\$/ /" >>$Messagefile
  949. 84 }
  950. 85 debugnote() {
  951. 86 echo "$*:DEBUGNOTE" | sed "s/\$/ /" >>$Messagefile
  952. 87 }
  953. 88 error() {
  954. 89 echo "$*:ERROR" | sed "s/\$/ /" >>$Messagefile
  955. 90 exit 64
  956. 91 }
  957. 92 stdout() {
  958. 93 echo "$*:STDOUT" | sed "s/\$/ /" >>$Messagefile
  959. 94 }
  960. 95 getscreensize() {
  961. 96 CurrentXaxis="$(xrandr | grep primary | cut -d' ' -f4 | cut -dx -f1 )"
  962. 97 CurrentYaxis="$(xrandr | grep primary | cut -d' ' -f4 | cut -dx -f2 | cut -d+ -f1)"
  963. 98 }
  964. 99 checkscreensize() {
  965. 100 getscreensize
  966. 101 [ "$Xaxis" = "$CurrentXaxis" ] || return 1
  967. 102 [ "$Yaxis" = "$CurrentYaxis" ] || return 1
  968. 103 return 0
  969. 104 }
  970. 105 getprimary() {
  971. 106 xrandr | grep -q primary || xrandr --output $(xrandr | grep ' connected' | head -n1 | cut -d' ' -f1) --primary
  972. 107 echo $(xrandr | grep primary | cut -d' ' -f1)
  973. 108 }
  974. 109
  975. 110 Messagefile='/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/message.fifo'
  976. 111 Output="$(getprimary)"
  977. 112 Storeinfofile='/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/store.info'
  978. 113 Storepidfile='/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/store.pids'
  979. 114 Timetosaygoodbyefile='/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/timetosaygoodbye'
  980. 115
  981. 116 export PATH='/usr/local/buildtools/java/jdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games'
  982. 117 export DISPLAY=:108 XAUTHORITY=/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client XSOCKET=/tmp/.X11-unix/X108 XDG_RUNTIME_DIR=/run/user/738202
  983. 118
  984. 119 Cookie=''
  985. 120 Line=''
  986. 121 Var=''
  987. 122
  988. 123 debugnote 'Running xinitrc'
  989. 124
  990. 125 # background color
  991. 126 sleep 2 && xsetroot -solid '#7F7F7F' &
  992. 127
  993. 128 # create new XAUTHORITY cookies
  994. 129 :> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client
  995. 130
  996. 131 cp /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client.bak # nxagent workaround cookie was created before starting xinit
  997. 132 export XAUTHORITY=/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client.bak
  998. 133
  999. 134 echo 'Requesting trusted cookie from X server'
  1000. 135 xauth -v -i -f /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client generate :108 . trusted timeout 3600
  1001. 136
  1002. 137 [ -s '/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client' ] || {
  1003. 138 [ 'trusted' = 'untrusted' ] && note 'Could not create untrusted cookie.
  1004. 139 Maybe your X server misses extension SECURITY.'
  1005. 140 }
  1006. 141 [ -s '/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client' ] || {
  1007. 142 # still no cookie? try to create one without extension security
  1008. 143 debugnote 'xinitrc: Failed to retrieve trusted cookie from X server. Will bake one myself.'
  1009. 144 echo 'Failed to retrieve trusted cookie from X server. Will bake one myself.'
  1010. 145 xauth -v -i -f /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client add :108 . dc0c209b4d1bf6a720e0bf13204305c5
  1011. 146 ls -l /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client
  1012. 147 }
  1013. 148
  1014. 149 # Prepare cookie with localhost identification disabled by ffff, needed if X socket is shared. ffff means 'familiy wild'
  1015. 150 Cookie="$(xauth -i -f /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client nlist | sed -e 's/^..../ffff/')"
  1016. 151 echo "$Cookie" | xauth -v -i -f /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client nmerge -
  1017. 152
  1018. 153 debugnote "xinitrc: Created cookie: $(xauth -f /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client list 2>&1)"
  1019. 154 ls -l /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client
  1020. 155 cp /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/Xauthority.server
  1021. 156 chmod 644 /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client
  1022. 157
  1023. 158 [ -s '/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client' ] || warning 'Cookie creation failed!'
  1024. 159 rm /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client.bak
  1025. 160 export XAUTHORITY=/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client
  1026. 161 [ 'yes' = 'no' ] || [ ! -s '/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client' ] && unset XAUTHORITY && warning '--nxagent: X server :108 runs without cookie authentication.'
  1027. 162
  1028. 163 # clean xhost
  1029. 164 verbose 'Disabling any possible access to new X server possibly granted by xhost'
  1030. 165 disable_xhost
  1031. 166
  1032. 167 verbose "Output of xrandr on :108
  1033. 168 $(xrandr)"
  1034. 169
  1035. 170 echo 'xinitrc: xinitrc is ready'
  1036. 171 storeinfo xinitrc=ready
  1037. 172
  1038. 173 # wait for the end
  1039. 174 read Var </home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/timetosaygoodbye.fifo
  1040.  
  1041. DEBUGNOTE[07:43:43,492]: Running xtermrc: Ask for password if needed (no)
  1042. DEBUGNOTE[07:43:43,497]: storepid(): Stored pid '130731' of 'containershell': 130731 pts/6 00:00:00 bash
  1043. DEBUGNOTE[07:43:43,507]: Running dockerrc: Setup as root or as user docker on host.
  1044. DEBUGNOTE[07:43:43,508]: waitforlogentry(): start_xserver(): Waiting for logentry "readyforX=ready" in store.info
  1045.  
  1046. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log <==
  1047. WARNING: No swap limit support
  1048.  
  1049. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/message.log <==
  1050. DEBUGNOTE[07:43:43,589]: dockerrc: Found default Runtime: runc
  1051. DEBUGNOTE[07:43:43,602]: dockerrc: All Runtimes: nvidia runc
  1052. DEBUGNOTE[07:43:43,613]: dockerrc: Container Runtime: runc
  1053. DEBUGNOTE[07:43:43,625]: storeinfo(): runtime=runc
  1054. DEBUGNOTE[07:43:43,717]: dockerrc: Image CMD: /bin/sh -c /usr/lib/rstudio/bin/rstudio
  1055. DEBUGNOTE[07:43:43,730]: dockerrc: Image USER: developer
  1056. 1 #! /bin/sh
  1057. 2
  1058. 3 # containerrc
  1059. 4 # Created startscript for docker run used as container command.
  1060. 5 # Runs as unprivileged user in container.
  1061. 6
  1062. 7 exec 6>&1 7>&2
  1063. 8 exec >>/x11docker/container.log 2>&1
  1064. 9
  1065. 10 mysleep ()
  1066. 11 {
  1067. 12 sleep "${1:-1}" 2> /dev/null || sleep 1
  1068. 13 }
  1069. 14 rocknroll ()
  1070. 15 {
  1071. 16 [ -s "$Timetosaygoodbyefile" ] && return 1;
  1072. 17 [ -e "$Timetosaygoodbyefile" ] || return 1;
  1073. 18 return 0
  1074. 19 }
  1075. 20 saygoodbye ()
  1076. 21 {
  1077. 22 debugnote "time to say goodbye ($*)";
  1078. 23 [ -e "$Timetosaygoodbyefile" ] && echo timetosaygoodbye >> $Timetosaygoodbyefile;
  1079. 24 [ -e "$Timetosaygoodbyefifo" ] && echo timetosaygoodbye >> $Timetosaygoodbyefifo
  1080. 25 }
  1081. 26 storeinfo ()
  1082. 27 {
  1083. 28 [ -e "$Storeinfofile" ] || return 1;
  1084. 29 case "${1:-}" in
  1085. 30 dump)
  1086. 31 grep "^${2:-}=" $Storeinfofile | sed "s/^${2:-}=//"
  1087. 32 ;;
  1088. 33 drop)
  1089. 34 sed -i "/^${2:-}=/d" $Storeinfofile
  1090. 35 ;;
  1091. 36 test)
  1092. 37 grep -q "^${2:-}=" $Storeinfofile
  1093. 38 ;;
  1094. 39 *)
  1095. 40 debugnote "storeinfo(): ${1:-}";
  1096. 41 grep -q "^$(echo "${1:-}" | cut -d= -f1)=" $Storeinfofile && {
  1097. 42 sed -i "/^$(echo "${1:-}" | cut -d= -f1)=/d" $Storeinfofile
  1098. 43 };
  1099. 44 echo "${1:-}" >> $Storeinfofile
  1100. 45 ;;
  1101. 46 esac
  1102. 47 }
  1103. 48 waitforlogentry ()
  1104. 49 {
  1105. 50 local Startzeit Uhrzeit Dauer Count=0 Schlaf;
  1106. 51 local Errorkeys="${4:-}";
  1107. 52 local Warten="${5:-60}";
  1108. 53 Startzeit="$(date +%s ||:)";
  1109. 54 Startzeit="${Startzeit:-0}";
  1110. 55 [ "$Warten" = "infinity" ] && Warten=32000;
  1111. 56 debugnote "waitforlogentry(): ${1:-}: Waiting for logentry \"${3:-}\" in $(basename ${2:-})";
  1112. 57 while ! grep -q "${3:-}" < "${2:-}"; do
  1113. 58 Count="$(( $Count + 1 ))";
  1114. 59 Uhrzeit="$(date +%s ||:)";
  1115. 60 Uhrzeit="${Uhrzeit:-0}";
  1116. 61 Dauer="$(( $Uhrzeit - $Startzeit ))";
  1117. 62 Schlaf="$(( $Count / 10 ))";
  1118. 63 [ "$Schlaf" = "0" ] && Schlaf="0.5";
  1119. 64 mysleep "$Schlaf";
  1120. 65 [ "$Dauer" -gt "10" ] && debugnote "waitforlogentry(): ${1:-}: Waiting since ${Dauer}s for log entry \"${3:-}\" in $(basename ${2:-})";
  1121. 66 [ "$Dauer" -gt "$Warten" ] && error "waitforlogentry(): ${1:-}: Timeout waiting for log entry \"${3:-}\" in $(basename ${2:-})
  1122. 67 Last lines of logfile $(basename ${2:-}):
  1123. 68 $(tail "${2:-}")";
  1124. 69 [ "$Errorkeys" ] && grep -i -q -E "$Errorkeys" < "${2:-}" && error "waitforlogentry(): ${1:-}: Found error message in logfile.
  1125. 70 Last lines of logfile $(basename ${2:-}):
  1126. 71 $(tail "${2:-}")";
  1127. 72 rocknroll || {
  1128. 73 debugnote "waitforlogentry(): ${1:-}: Stopped waiting for ${3:-} in $(basename ${2:-}) due to terminating signal.";
  1129. 74 return 1
  1130. 75 };
  1131. 76 done;
  1132. 77 debugnote "waitforlogentry(): ${1:-}: Found log entry \"${3:-}\" in $(basename ${2:-}).";
  1133. 78 return 0
  1134. 79 }
  1135. 80 calculate() {
  1136. 81 LC_ALL=C printf %.3f\\n "$((10**9 * $@))e-9"
  1137. 82 }
  1138. 83
  1139. 84 warning() {
  1140. 85 echo "$*:WARNING" | sed "s/\$/ /" >>$Messagefile
  1141. 86 }
  1142. 87 note() {
  1143. 88 echo "$*:NOTE" | sed "s/\$/ /" >>$Messagefile
  1144. 89 }
  1145. 90 verbose() {
  1146. 91 echo "$*:VERBOSE" | sed "s/\$/ /" >>$Messagefile
  1147. 92 }
  1148. 93 debugnote() {
  1149. 94 echo "$*:DEBUGNOTE" | sed "s/\$/ /" >>$Messagefile
  1150. 95 }
  1151. 96 error() {
  1152. 97 echo "$*:ERROR" | sed "s/\$/ /" >>$Messagefile
  1153. 98 exit 64
  1154. 99 }
  1155. 100 stdout() {
  1156. 101 echo "$*:STDOUT" | sed "s/\$/ /" >>$Messagefile
  1157. 102 }
  1158. 103 Messagefile=/x11docker/message.fifo
  1159. 104 Storeinfofile=/x11docker/store.info
  1160. 105 Timetosaygoodbyefile=/x11docker/timetosaygoodbye
  1161. 106
  1162. 107 waitforlogentry containerrc $Storeinfofile containerrootrc=ready infinity
  1163. 108 debugnote "Running containerrc: Unprivileged user commands in container"
  1164. 109
  1165. 110 Containercommand="/bin/sh -c /usr/lib/rstudio/bin/rstudio"
  1166. 111 Entrypoint=""
  1167. 112
  1168. 113 verbose "containerrc: Container system:
  1169. 114 $(cat /etc/os-release 2>&1 ||:)"
  1170. 115
  1171. 116
  1172. 117 # USER and HOME
  1173. 118 Containeruser="$(storeinfo dump containeruser)"
  1174. 119 Containeruserhome="/fakehome/ignacio"
  1175. 120 export USER="$Containeruser"
  1176. 121 export HOME="$Containeruserhome"
  1177. 122
  1178. 123 # XDG_RUNTIME_DIR
  1179. 124 Containeruseruid=$(id -u $Containeruser)
  1180. 125 export XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR
  1181. 126 [ -e /run/user/$Containeruseruid ] && ln -s /run/user/$Containeruseruid $XDG_RUNTIME_DIR || mkdir -p -m700 $XDG_RUNTIME_DIR
  1182. 127
  1183. 128 mkdir -p $Containeruserhome
  1184. 129 # Copy files from /etc/skel into empty HOME
  1185. 130 [ -d /etc/skel ] && [ -z "$(ls -A "/fakehome/ignacio" 2>/dev/null | grep -v gnupg)" ] && {
  1186. 131 debugnote "containerrc: HOME is empty. Copying from /etc/skel"
  1187. 132 cp -n -R /etc/skel/. $Containeruserhome
  1188. 133 :
  1189. 134 } || {
  1190. 135 debugnote "containerrc: HOME not empty. Not copying from /etc/skel"
  1191. 136 }
  1192. 137
  1193. 138 # Create softlink to X unix socket
  1194. 139 [ -e /tmp/.X11-unix/X108 ] || ln -s /X108 /tmp/.X11-unix
  1195. 140
  1196. 141 unset WAYLAND_DISPLAY
  1197. 142
  1198. 143 export XDG_SESSION_TYPE=x11
  1199. 144
  1200. 145
  1201. 146 bash --version >/dev/null 2>&1 && export SHELL=/bin/bash || export SHELL=/bin/sh
  1202. 147 export TERM=xterm
  1203. 148 storeinfo test locale && export LANG="$(storeinfo dump locale)"
  1204. 149 [ -e "/usr/share/zoneinfo/America/Los_Angeles" ] || export TZ=UTC+08
  1205. 150 [ "$(date -Ihours)" != "2019-11-15T07-08:00" ] && export TZ=UTC+08
  1206. 151 [ "$DEBIAN_FRONTEND" = noninteractive ] && unset DEBIAN_FRONTEND && export DEBIAN_FRONTEND
  1207. 152 [ "$DEBIAN_FRONTEND" = newt ] && unset DEBIAN_FRONTEND && export DEBIAN_FRONTEND
  1208. 153 # container environment (--env)
  1209. 154 export 'container=docker'
  1210. 155 export 'XAUTHORITY=/x11docker/Xauthority.client'
  1211. 156 export 'DISPLAY=:108'
  1212. 157 export 'XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR'
  1213. 158
  1214. 159 env >> /x11docker/container.environment
  1215. 160 verbose "Container environment:
  1216. 161 $(env | sort)"
  1217. 162
  1218. 163 cd "$HOME"
  1219. 164 [ -d "/home/developer" ] && cd "/home/developer" # WORKDIR in image
  1220. 165
  1221. 166 debugnote "containerrc: Running container command:
  1222. 167 $Dbus /bin/sh -c /usr/lib/rstudio/bin/rstudio
  1223. 168 "
  1224. 169
  1225. 170 exec 1>&6 2>&7 6>&- 7>&-
  1226. 171 $Dbus /bin/sh -c /usr/lib/rstudio/bin/rstudio >>/x11docker/stdout 2>>/x11docker/stderr
  1227. 172 storeinfo cmdexitcode=$?
  1228. x11docker note: Found 'USER developer' in image.
  1229. If you want to run with user developer instead of host user ignacio,
  1230. than run with --user=RETAIN.
  1231.  
  1232. DEBUGNOTE[07:43:43,758]: storeinfo(): containeruser=ignacio
  1233. DEBUGNOTE[07:43:43,770]: dockerrc: Image ENTRYPOINT:
  1234. DEBUGNOTE[07:43:43,785]: dockerrc: Image WORKDIR: /home/developer
  1235. x11docker note: Found 'WORKDIR /home/developer' in image.
  1236. You can change it with option --workdir=DIR.
  1237.  
  1238. DEBUGNOTE[07:43:43,815]: storeinfo(): readyforX=ready
  1239. DEBUGNOTE[07:43:43,831]: waitforlogentry(): dockerrc: Waiting for logentry "xinitrc is ready" in xinit.log
  1240. DEBUGNOTE[07:43:44,027]: waitforlogentry(): start_xserver(): Found log entry "readyforX=ready" in store.info.
  1241.  
  1242. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/xinit.log <==
  1243.  
  1244. Extension "COMPOSITE" is not recognized
  1245. Only the following extensions can be run-time disabled:
  1246. BIG-REQUESTS
  1247. Composite
  1248. DAMAGE
  1249. DOUBLE-BUFFER
  1250. DPMS
  1251. GLX
  1252. MIT-SCREEN-SAVER
  1253. MIT-SHM
  1254. RANDR
  1255. RENDER
  1256. SHAPE
  1257. SECURITY
  1258. SYNC
  1259. X-Resource
  1260. XC-MISC
  1261. XFree86-Bigfont
  1262. XFIXES
  1263. XINERAMA
  1264. XInputExtension
  1265. XKEYBOARD
  1266. XTEST
  1267. XVideo
  1268.  
  1269. NXAGENT - Version 3.5.99.19
  1270.  
  1271. Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com)
  1272. Copyright (c) 2008-2014 Oleksandr Shneyder <[email protected]>
  1273. Copyright (c) 2011-2016 Mike Gabriel <[email protected]>
  1274. Copyright (c) 2014-2016 Ulrich Sibiller <[email protected]>
  1275. Copyright (c) 2014-2016 Mihai Moldovan <[email protected]>
  1276. Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com)
  1277. See https://github.com/ArcticaProject/nx-libs for more information.
  1278.  
  1279. Info: Agent running with pid '131077'.
  1280. Session: Starting session at 'Fri Nov 15 07:43:44 2019'.
  1281. Info: Using alpha channel in render extension.
  1282. Info: Not using local device configuration changes.
  1283. Info: using keystrokes file '/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/nxagent.keys'
  1284. Current known keystrokes:
  1285. fullscreen Shift+F11
  1286. fullscreen Ctrl+Shift+Alt+f
  1287. Info: Keycode conversion auto-determined as on
  1288. The XKEYBOARD keymap compiler (xkbcomp) reports:
  1289. > Internal error: Could not resolve keysym XF86WWAN
  1290. > Internal error: Could not resolve keysym XF86RFKill
  1291. Errors from xkbcomp are not fatal to the X server
  1292. Session: Session started at 'Fri Nov 15 07:43:44 2019'.
  1293. xinit: XFree86_VT property unexpectedly has 0 items instead of 1
  1294. xrandr: Failed to get size of gamma for output default
  1295. xrandr: Failed to get size of gamma for output default
  1296. xrandr: Failed to get size of gamma for output default
  1297. xrandr: Failed to get size of gamma for output default
  1298. Requesting trusted cookie from X server
  1299. Ignoring locks on authority file /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client
  1300. authorization id is 244
  1301. Ignoring locks and writing authority file /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client
  1302. Ignoring locks on authority file /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client
  1303. 1 entries read in: 0 new, 1 replacement
  1304. Ignoring locks and writing authority file /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client
  1305.  
  1306. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/message.log <==
  1307. DEBUGNOTE[07:43:44,191]: Running xinitrc
  1308.  
  1309. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/xinit.log <==
  1310. -rw------- 1 ignacio primarygroup 77 Nov 15 07:43 /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client
  1311.  
  1312. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/message.log <==
  1313. DEBUGNOTE[07:43:44,207]: xinitrc: Created cookie: #ffff#6d617274696e657a69672e73666f2e636f72702e676f6f676c652e636f6d#:108 MIT-MAGIC-COOKIE-1 7068404b230e7f5f2f25707134013341
  1314.  
  1315. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/xinit.log <==
  1316. access control enabled, only authorized clients can connect
  1317. xrandr: Failed to get size of gamma for output default
  1318. xinitrc: xinitrc is ready
  1319.  
  1320. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/message.log <==
  1321. x11docker[07:43:44,224]: Disabling any possible access to new X server possibly granted by xhost
  1322.  
  1323. x11docker[07:43:44,297]: Output of xrandr on :108
  1324. Screen 0: minimum 320 x 240, current 3840 x 2160, maximum 3840 x 2160
  1325. default connected primary 3840x2160+0+0 0mm x 0mm
  1326. 1920x1200 60.00
  1327. 320x240 60.00
  1328. 640x360 60.00
  1329. 640x480 60.00
  1330. 800x480 60.00
  1331. 800x600 60.00
  1332. 1024x600 60.00
  1333. 1024x768 60.00
  1334. 1152x864 60.00
  1335. 1280x720 60.00
  1336. 1280x800 60.00
  1337. 1280x1024 60.00
  1338. 1360x768 60.00
  1339. 1440x900 60.00
  1340. 1600x900 60.00
  1341. 1600x1200 60.00
  1342. 1680x1050 60.00
  1343. 1920x1080 60.00
  1344. 3840x2160 60.00*
  1345.  
  1346. DEBUGNOTE[07:43:44,311]: storeinfo(): xinitrc=ready
  1347. DEBUGNOTE[07:43:44,325]: waitforlogentry(): dockerrc: Found log entry "xinitrc is ready" in xinit.log.
  1348. DEBUGNOTE[07:43:44,879]: waitforlogentry(): containerrc: Waiting for logentry "containerrootrc=ready" in store.info
  1349. DEBUGNOTE[07:43:44,889]: storeinfo(): containerid=1a4fd70b6e1317ac0fbc891c1456743ab0e897a5eb37c64cf84f9ac33ceaceda
  1350. DEBUGNOTE[07:43:45,064]: dockerrc: Container is up and running.
  1351. DEBUGNOTE[07:43:45,108]: dockerrc: 1. check for PID 1: 131284
  1352. DEBUGNOTE[07:43:45,118]: storeinfo(): pid1pid=131284
  1353. DEBUGNOTE[07:43:45,158]: storeinfo(): containerip=192.168.9.2
  1354. DEBUGNOTE[07:43:45,473]: Running containerrootrc: Setup as root in container
  1355.  
  1356. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log <==
  1357. mkdir: created directory '/var/lib/dbus'
  1358. mkdir: created directory '/var/run/dbus'
  1359. mkdir: created directory '/tmp/.ICE-unix'
  1360. mkdir: created directory '/tmp/.X11-unix'
  1361. mkdir: created directory '/tmp/.font-unix'
  1362. srwxrwxrwx 1 developer 89939 0 Nov 15 15:43 /X108
  1363. lrwxrwxrwx 1 root root 5 Nov 15 15:43 /tmp/.X11-unix/X108 -> /X108
  1364.  
  1365. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/message.log <==
  1366. DEBUGNOTE[07:43:45,494]: containerrootrc: Container libc: glibc
  1367.  
  1368. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log <==
  1369. mkdir: created directory '/fakehome'
  1370. removed '/etc/shadow'
  1371.  
  1372. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/message.log <==
  1373. x11docker[07:43:45,514]: Container system ID: ubuntu
  1374.  
  1375.  
  1376. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/container.log <==
  1377. chown: changing ownership of '/tmp/chowntestfile': Operation not permitted
  1378.  
  1379. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/message.log <==
  1380. DEBUGNOTE[07:43:45,531]: storeinfo(): containerrootrc=ready
  1381. DEBUGNOTE[07:43:45,570]: storeinfo(): dockerrc=ready
  1382. DEBUGNOTE[07:43:45,596]: storepid(): Stored pid '131819' of 'dockerstopshell': 131819 pts/6 00:00:00 bash
  1383. DEBUGNOTE[07:43:45,600]: waitforlogentry(): start_docker(): Waiting for logentry "dockerrc=ready" in store.info
  1384. DEBUGNOTE[07:43:45,606]: storeinfo(): xtermrc=ready
  1385. DEBUGNOTE[07:43:45,606]: waitforlogentry(): start_docker(): Found log entry "dockerrc=ready" in store.info.
  1386. DEBUGNOTE[07:43:45,613]: watchpidlist(): Setting pid 131284 on watchlist: pid1pid
  1387. DEBUGNOTE[07:43:45,636]: watchpidlist(): Watching pids:
  1388. 131284 pts/0 00:00:00 tini
  1389. DEBUGNOTE[07:43:45,638]: storepid(): Stored pid '131284' of 'pid1pid': 131284 pts/0 00:00:00 tini
  1390. DEBUGNOTE[07:43:45,657]: watchpidlist(): Setting pid 131076 on watchlist: xinit
  1391. DEBUGNOTE[07:43:45,681]: storepid(): Stored pid '131076' of 'xinit': 131076 pts/6 00:00:00 xinit
  1392. DEBUGNOTE[07:43:45,694]: watchpidlist(): Watching pids:
  1393. 131284 pts/0 00:00:00 tini
  1394. 131076 pts/6 00:00:00 xinit
  1395. DEBUGNOTE[07:43:45,715]: watchpidlist(): Setting pid 131077 on watchlist: Xserver
  1396. DEBUGNOTE[07:43:45,741]: storepid(): Stored pid '131077' of 'Xserver': 131077 pts/6 00:00:00 nxagent
  1397. DEBUGNOTE[07:43:45,772]: watchpidlist(): Watching pids:
  1398. 131284 pts/0 00:00:00 tini
  1399. 131076 pts/6 00:00:00 xinit
  1400. 131077 pts/6 00:00:00 nxagent
  1401. DEBUGNOTE[07:43:45,831]: Process tree of container: (maybe not complete yet)
  1402. tini(131284)---sh(131328)---sleep(131673)
  1403. DEBUGNOTE[07:43:45,902]: waitforlogentry(): containerrc: Found log entry "containerrootrc=ready" in store.info.
  1404. DEBUGNOTE[07:43:45,911]: Running containerrc: Unprivileged user commands in container
  1405. x11docker[07:43:45,945]: containerrc: Container system:
  1406. NAME="Ubuntu"
  1407. VERSION="18.04.3 LTS (Bionic Beaver)"
  1408. ID=ubuntu
  1409. ID_LIKE=debian
  1410. PRETTY_NAME="Ubuntu 18.04.3 LTS"
  1411. VERSION_ID="18.04"
  1412. HOME_URL="https://www.ubuntu.com/"
  1413. SUPPORT_URL="https://help.ubuntu.com/"
  1414. BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
  1415. PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
  1416. VERSION_CODENAME=bionic
  1417. UBUNTU_CODENAME=bionic
  1418.  
  1419. DEBUGNOTE[07:43:45,957]: containerrc: HOME is empty. Copying from /etc/skel
  1420. x11docker[07:43:46,006]: Container environment:
  1421. container=docker
  1422. DISPLAY=:108
  1423. HOME=/fakehome/ignacio
  1424. HOSTNAME=1a4fd70b6e13
  1425. LANG=en_US.UTF-8
  1426. LC_ALL=en_US.UTF-8
  1427. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  1428. PWD=/tmp
  1429. SHELL=/bin/bash
  1430. TERM=xterm
  1431. USER=ignacio
  1432. XAUTHORITY=/x11docker/Xauthority.client
  1433. XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR
  1434. XDG_SESSION_TYPE=x11
  1435.  
  1436. DEBUGNOTE[07:43:46,019]: Process tree of x11docker:
  1437. bash(129655)-+-bash(130067)---tail(130069)
  1438. |-bash(130070)
  1439. |-bash(130071)
  1440. |-bash(130091)
  1441. |-bash(130104)
  1442. |-bash(130731)---bash(131980)---pstree(131981)
  1443. `-xinit(131076)-+-nxagent(131077)
  1444. `-sh(131080)---sh(131096)---sleep(131099)
  1445. Lost child of dockerrc (dockerstopshell):
  1446. bash(131819)
  1447. DEBUGNOTE[07:43:46,023]: containerrc: Running container command:
  1448. /bin/sh -c /usr/lib/rstudio/bin/rstudio
  1449.  
  1450. DEBUGNOTE[07:43:46,026]: storeinfo(): Stored info:
  1451. cache=/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472
  1452. stdout=/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/stdout
  1453. stderr=/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/stderr
  1454. x11dockerpid=129655
  1455. xserver=--nxagent
  1456. DISPLAY=:108
  1457. XAUTHORITY=/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client
  1458. XSOCKET=/tmp/.X11-unix/X108
  1459. XDG_RUNTIME_DIR=/run/user/738202
  1460. Xenv= DISPLAY=:108 XAUTHORITY=/home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/Xauthority.client XSOCKET=/tmp/.X11-unix/X108 XDG_RUNTIME_DIR=/run/user/738202
  1461. tini=/usr/bin/docker-init
  1462. containername=x11docker_X108_rstudioxhost-verse_32621422472
  1463. runtime=runc
  1464. containeruser=ignacio
  1465. readyforX=ready
  1466. xinitrc=ready
  1467. containerid=1a4fd70b6e1317ac0fbc891c1456743ab0e897a5eb37c64cf84f9ac33ceaceda
  1468. pid1pid=131284
  1469. containerip=192.168.9.2
  1470. containerrootrc=ready
  1471. dockerrc=ready
  1472. xtermrc=ready
  1473. DEBUGNOTE[07:43:46,031]: storepid(): Stored pids:
  1474. 130091 watchpidlist
  1475. 130104 watchmessagefifo
  1476. 130731 containershell
  1477. 131819 dockerstopshell
  1478. 131284 pid1pid
  1479. 131076 xinit
  1480. 131077 Xserver
  1481. DEBUGNOTE[07:43:46,034]: storeinfo(): x11docker=ready
  1482. DEBUGNOTE[07:43:46,401]: waitforlogentry(): tailstderr: Found log entry "x11docker=ready" in store.info.
  1483. DEBUGNOTE[07:43:46,403]: waitforlogentry(): tailstdout: Found log entry "x11docker=ready" in store.info.
  1484.  
  1485. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/stderr <==
  1486. qt.qpa.xcb: X server does not support XInput 2
  1487. [116:189:1115/074347.884867:ERROR:gl_surface_glx_qt.cpp(141)] GLX 1.3 or later is required.
  1488. [116:189:1115/074347.884909:ERROR:gl_ozone_glx_qt.cpp(57)] GLSurfaceGLXQt::InitializeOneOff failed.
  1489.  
  1490. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/xinit.log <==
  1491. nxagentImportProperty: Remote property bigger than maximum limits.
  1492. nxagentImportProperty: Remote property bigger than maximum limits.
  1493. nxagentImportProperty: Remote property bigger than maximum limits.
  1494. nxagentImportProperty: Remote property bigger than maximum limits.
  1495. nxagentImportProperty: Remote property bigger than maximum limits.
  1496. nxagentImportProperty: Remote property bigger than maximum limits.
  1497. nxagentImportProperty: Remote property bigger than maximum limits.
  1498. nxagentImportProperty: Remote property bigger than maximum limits.
  1499. nxagentImportProperty: Remote property bigger than maximum limits.
  1500. nxagentImportProperty: Remote property bigger than maximum limits.
  1501. nxagentImportProperty: Remote property bigger than maximum limits.
  1502. nxagentImportProperty: Remote property bigger than maximum limits.
  1503. nxagentImportProperty: Remote property bigger than maximum limits.
  1504. nxagentImportProperty: Remote property bigger than maximum limits.
  1505. nxagentImportProperty: Remote property bigger than maximum limits.
  1506. nxagentImportProperty: Remote property bigger than maximum limits.
  1507. nxagentImportProperty: Remote property bigger than maximum limits.
  1508. nxagentImportProperty: Remote property bigger than maximum limits.
  1509. nxagentImportProperty: Remote property bigger than maximum limits.
  1510. nxagentImportProperty: Remote property bigger than maximum limits.
  1511. nxagentImportProperty: Remote property bigger than maximum limits.
  1512.  
  1513. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/share/stderr <==
  1514. qt.glx: qglx_findConfig: Failed to finding matching FBConfig (8 8 8 0)
  1515. qt.glx: qglx_findConfig: Failed to finding matching FBConfig (1 8 8 0)
  1516. qt.glx: qglx_findConfig: Failed to finding matching FBConfig (1 1 8 0)
  1517. qt.glx: qglx_findConfig: Failed to finding matching FBConfig (1 1 1 0)
  1518. qt.glx: qglx_findConfig: Failed to finding matching FBConfig (1 1 1 0)
  1519. qt.glx: qglx_findConfig: Failed to finding matching FBConfig (1 1 1 0)
  1520. qt.glx: qglx_findConfig: Failed to finding matching FBConfig (1 1 1 0)
  1521. qt.glx: qglx_findConfig: Failed to finding matching FBConfig (1 1 1 0)
  1522. WARNING: Application calling GLX 1.3 function "glXCreatePbuffer" when GLX 1.3 is not supported! This is an application bug!
  1523. QSGContext::initialize: stencil buffer support missing, expect rendering errors
  1524. qt.qpa.xcb: QXcbConnection: XCB error: 1 (BadRequest), sequence: 163, resource id: 209, major code: 129 (Unknown), minor code: 47
  1525. Received signal 11 SEGV_MAPERR 000000000000
  1526. #0 0x7f7307112a4f <unknown>
  1527. #1 0x7f7307112e4b <unknown>
  1528. #2 0x7f73071134ce <unknown>
  1529. #3 0x7f730237b890 <unknown>
  1530. #4 0x7f7305662e13 <unknown>
  1531. #5 0x7f73056635c3 <unknown>
  1532. #6 0x7f73079e6d09 <unknown>
  1533. #7 0x7f73079e6e6d <unknown>
  1534. #8 0x7f7309cc5707 <unknown>
  1535. #9 0x7f7309cc964a <unknown>
  1536. #10 0x7f7309cc3938 <unknown>
  1537. #11 0x7f7309cc18d9 <unknown>
  1538. #12 0x7f7309cc2b52 <unknown>
  1539. #13 0x7f7309cc4a0d <unknown>
  1540. #14 0x7f73070753d7 <unknown>
  1541. #15 0x7f730709bcf7 <unknown>
  1542. #16 0x7f730709c35d <unknown>
  1543. #17 0x7f730709c62a <unknown>
  1544. #18 0x7f7307095c92 <unknown>
  1545. #19 0x7f73070b602f <unknown>
  1546. #20 0x7f73070ec684 <unknown>
  1547. #21 0x7f730711fa10 <unknown>
  1548. #22 0x7f73023706db start_thread
  1549. #23 0x7f73007d388f clone
  1550. r8: 0000000000000000 r9: 0000000000000000 r10: 00007f72700008d0 r11: 0000000000000000
  1551. r12: 00007f727bffdc30 r13: 00007f727bffdef0 r14: 00007f727bffdee0 r15: 00007f727bffde80
  1552. di: 0000000000000000 si: 00005600ece20c80 bp: 00007f727bffdc20 bx: 00007f7270018480
  1553. dx: 00005600ece592a0 ax: 00007f730c175620 cx: 00007f727bffda60 sp: 00007f727bffda60
  1554. ip: 00007f7305662e13 efl: 0000000000010206 cgf: 002b000000000033 erf: 0000000000000004
  1555. trp: 000000000000000e msk: 0000000000000000 cr2: 0000000000000000
  1556. [end of stack trace]
  1557. Calling _exit(1). Core file will not be generated.
  1558.  
  1559. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/message.log <==
  1560. DEBUGNOTE[07:43:48,115]: storeinfo(): cmdexitcode=1
  1561. DEBUGNOTE[07:43:48,778]: watchpidlist(): PID 131284 has terminated
  1562. DEBUGNOTE[07:43:48,782]: time to say goodbye (watchpidlist 131284)
  1563.  
  1564. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/xinit.log <==
  1565. xinit: connection to X server lost
  1566.  
  1567. waiting for X server to shut down Session: Terminating session at 'Fri Nov 15 07:43:48 2019'.
  1568. Session: Session terminated at 'Fri Nov 15 07:43:48 2019'.
  1569. FreeFontPath: FPE "/usr/share/fonts/X11/misc/" refcount is 2, should be 1; fixing.
  1570.  
  1571. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/message.log <==
  1572. DEBUGNOTE[07:43:48,788]: time to say goodbye (watchpidlist)
  1573.  
  1574. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/xinit.log <==
  1575.  
  1576.  
  1577. ==> /home/ignacio/.cache/x11docker/rstudioxhost-verse-32621422472/message.log <==
  1578. DEBUGNOTE[07:43:49,790]: time to say goodbye (main)
  1579. DEBUGNOTE[07:43:49,798]: Terminating x11docker.
  1580. DEBUGNOTE[07:43:49,804]: time to say goodbye (finish)
  1581. DEBUGNOTE[07:43:49,848]: finish(): Checking pid 131077 (Xserver): (already gone)
  1582. DEBUGNOTE[07:43:49,886]: finish(): Checking pid 131076 (xinit): (already gone)
  1583. DEBUGNOTE[07:43:49,922]: finish(): Checking pid 131284 (pid1pid): (already gone)
  1584. DEBUGNOTE[07:43:49,960]: finish(): Checking pid 131819 (dockerstopshell): 131819 pts/6 00:00:00 bash
  1585. DEBUGNOTE[07:43:49,996]: finish(): Checking pid 130731 (containershell): (already gone)
  1586. DEBUGNOTE[07:43:50,029]: finish(): Checking pid 130104 (watchmessagefifo): 130104 pts/6 00:00:00 bash
  1587. DEBUGNOTE[07:43:50,068]: finish(): Checking pid 130091 (watchpidlist): (already gone)
  1588. DEBUGNOTE[07:43:51,190]: termpid(): Terminating 130104 (watchmessagefifo): 130104 pts/6 00:00:00 bash
  1589. DEBUGNOTE[07:43:51,320]: x11docker exit code: 0
  1590. DEBUGNOTE[07:43:51,336]: CMD exit code: 1
Advertisement
Add Comment
Please, Sign In to add comment