Ubuntu Server Guide


Download 1.23 Mb.
Pdf ko'rish
bet114/277
Sana18.06.2023
Hajmi1.23 Mb.
#1564055
1   ...   110   111   112   113   114   115   116   117   ...   277
Bog'liq
ubuntu-server-guide (1)

Troubleshooting
Logging
If something goes wrong when starting a container, the first step should be to get full logging from LXC:
sudo l x c −s t a r t −n C1 − l t r a c e −o debug . out
This will cause lxc to log at the most verbose level, trace, and to output log information to a file called
‘debug.out’. If the file debug.out already exists, the new log information will be appended.
Monitoring container status
Two commands are available to monitor container state changes. lxc−monitor monitors one or more con-
tainers for any state changes. It takes a container name as usual with the -n option, but in this case the
container name can be a posix regular expression to allow monitoring desirable sets of containers. lxc−
monitor continues running as it prints container changes. lxc−wait waits for a specific state change and
then exits. For instance,
sudo l x c −monitor −n c o n t [0 −5]*
would print all state changes to any containers matching the listed regular expression, whereas
sudo l x c −w a i t −n c o n t 1 −s ’STOPPED|FROZEN’
will wait until container cont1 enters state STOPPED or state FROZEN and then exit.
Attach
As of Ubuntu 14.04, it is possible to attach to a container’s namespaces. The simplest case is to simply do
sudo l x c −a t t a c h −n C1
which will start a shell attached to C1’s namespaces, or, effectively inside the container. The attach func-
tionality is very flexible, allowing attaching to a subset of the container’s namespaces and security context.
See the manual page for more information.
Container init verbosity
If LXC completes the container startup, but the container init fails to complete (for instance, no login prompt
is shown), it can be useful to request additional verbosity from the init process. For an upstart container,
this might be:
sudo l x c −s t a r t −n C1 / s b i n / i n i t l o g l e v e l=debug
You can also start an entirely different program in place of init, for instance
sudo l x c −s t a r t −n C1 / b i n / bash
sudo l x c −s t a r t −n C1 / b i n / s l e e p 100
sudo l x c −s t a r t −n C1 / b i n / c a t / p r o c /1/ s t a t u s
128


LXC API
Most of the LXC functionality can now be accessed through an API exported by liblxc for which bindings
are available in several languages, including Python, lua, ruby, and go.
Below is an example using the python bindings (which are available in the python3-lxc package) which
creates and starts a container, then waits until it has been shut down:
# sudo python3
Python 3 . 2 . 3 ( d e f a u l t , Aug 28 2 0 1 2 , 0 8 : 2 6 : 0 3 )
[GCC 4 . 7 . 1 20120814 ( p r e r e l e a s e ) ] on l i n u x 2
Type ” h e l p ” , ” c o p y r i g h t ” , ” c r e d i t s ” o r ” l i c e n s e ” f o r more i n f o r m a t i o n .
>>> import l x c
__main__ : 1 : Warning : The python−l x c API i s n ’ t y e t s t a b l e and may change a t any
p o i n t i n t h e f u t u r e .
>>> c=l x c . C o n t a i n e r ( ” C1 ” )
>>> c . c r e a t e ( ” ubuntu ” )
True
>>> c . s t a r t ( )
True
>>> c . w a i t ( ”STOPPED” )
True

Download 1.23 Mb.

Do'stlaringiz bilan baham:
1   ...   110   111   112   113   114   115   116   117   ...   277




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling