本文整理汇总了Python中xpra.dotxpra.DotXpra.confdir方法的典型用法代码示例。如果您正苦于以下问题:Python DotXpra.confdir方法的具体用法?Python DotXpra.confdir怎么用?Python DotXpra.confdir使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xpra.dotxpra.DotXpra
的用法示例。
在下文中一共展示了DotXpra.confdir方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: run_server
# 需要导入模块: from xpra.dotxpra import DotXpra [as 别名]
# 或者: from xpra.dotxpra.DotXpra import confdir [as 别名]
def run_server(parser, opts, mode, xpra_file, extra_args):
if len(extra_args) != 1:
parser.error("need exactly 1 extra argument")
display_name = extra_args.pop(0)
if display_name==":0":
print("WARNING:")
print("You are attempting to run the xpra server against the default X11 display '%s'." % display_name)
print("This is generally not what you want.")
print("You should probably use a higher display number just to avoid any confusion (and also this warning message).")
if opts.exit_with_children and not opts.children:
print("--exit-with-children specified without any children to spawn; exiting immediately")
return 1
atexit.register(run_cleanups)
signal.signal(signal.SIGINT, deadly_signal)
signal.signal(signal.SIGTERM, deadly_signal)
assert mode in ("start", "upgrade")
upgrading = (mode == "upgrade")
from xpra.scripts.main import get_default_socket_dir
dotxpra = DotXpra(opts.sockdir or get_default_socket_dir())
# This used to be given a display-specific name, but now we give it a
# single fixed name and if multiple servers are started then the last one
# will clobber the rest. This isn't great, but the tradeoff is that it
# makes it possible to use bare 'ssh:hostname' display names and
# autodiscover the proper numeric display name when only one xpra server
# is running on the remote host. Might need to revisit this later if
# people run into problems or autodiscovery turns out to be less useful
# than expected.
scriptpath = os.path.join(dotxpra.confdir(), "run-xpra")
# Save the starting dir now, because we'll lose track of it when we
# daemonize:
starting_dir = os.getcwd()
# Daemonize:
if opts.daemon:
logpath = dotxpra.conf_path(display_name) + ".log"
sys.stderr.write("Entering daemon mode; "
+ "any further errors will be reported to:\n"
+ (" %s\n" % logpath))
# Do some work up front, so any errors don't get lost.
if os.path.exists(logpath):
os.rename(logpath, logpath + ".old")
logfd = os.open(logpath, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, o0666)
assert logfd > 2
os.chdir("/")
if os.fork():
os._exit(0)
os.setsid()
if os.fork():
os._exit(0)
close_all_fds(exceptions=[logfd])
fd0 = os.open("/dev/null", os.O_RDONLY)
if fd0 != 0:
os.dup2(fd0, 0)
os.close(fd0)
os.dup2(logfd, 1)
os.dup2(logfd, 2)
os.close(logfd)
# Make these line-buffered:
sys.stdout = os.fdopen(1, "w", 1)
sys.stderr = os.fdopen(2, "w", 1)
# Write out a shell-script so that we can start our proxy in a clean
# environment:
scriptfile = open(scriptpath, "w")
# Unix is a little silly sometimes:
umask = os.umask(0)
os.umask(umask)
if hasattr(os, "fchmod"):
os.fchmod(scriptfile.fileno(), o0700 & ~umask)
else:
os.chmod(scriptpath, o0700 & ~umask)
scriptfile.write(xpra_runner_shell_script(xpra_file, starting_dir, opts.sockdir))
scriptfile.close()
# Initialize the sockets before the display,
# That way, errors won't make us kill the Xvfb
# (which may not be ours to kill at that point)
sockets = []
if opts.bind_tcp:
try:
tcp_socket = create_tcp_socket(parser, opts.bind_tcp)
sockets.append(tcp_socket)
def cleanup_tcp_socket():
print("closing tcp socket %s" % opts.bind_tcp)
try:
tcp_socket.close()
except:
pass
_cleanups.append(cleanup_tcp_socket)
except Exception, e:
print("cannot start - failed to create tcp socket at %s: %s" % (opts.bind_tcp, e))
return 1
示例2: run_server
# 需要导入模块: from xpra.dotxpra import DotXpra [as 别名]
# 或者: from xpra.dotxpra.DotXpra import confdir [as 别名]
def run_server(parser, opts, mode, xpra_file, extra_args):
if len(extra_args) != 1:
parser.error("need exactly 1 extra argument")
display_name = extra_args.pop(0)
if opts.exit_with_children and not opts.children:
print("--exit-with-children specified without any children to spawn; exiting immediately")
return
atexit.register(run_cleanups)
signal.signal(signal.SIGINT, deadly_signal)
signal.signal(signal.SIGTERM, deadly_signal)
assert mode in ("start", "upgrade")
upgrading = (mode == "upgrade")
dotxpra = DotXpra(opts.sockdir)
# This used to be given a display-specific name, but now we give it a
# single fixed name and if multiple servers are started then the last one
# will clobber the rest. This isn't great, but the tradeoff is that it
# makes it possible to use bare 'ssh:hostname' display names and
# autodiscover the proper numeric display name when only one xpra server
# is running on the remote host. Might need to revisit this later if
# people run into problems or autodiscovery turns out to be less useful
# than expected.
scriptpath = os.path.join(dotxpra.confdir(), "run-xpra")
# Save the starting dir now, because we'll lose track of it when we
# daemonize:
starting_dir = os.getcwd()
clobber = upgrading or opts.use_display
try:
sockpath = dotxpra.server_socket_path(display_name, clobber)
except ServerSockInUse:
parser.error("You already have an xpra server running at %s\n"
" (did you want 'xpra upgrade'?)"
% (display_name,))
# Daemonize:
if opts.daemon:
logpath = dotxpra.conf_path(display_name) + ".log"
sys.stderr.write("Entering daemon mode; "
+ "any further errors will be reported to:\n"
+ (" %s\n" % logpath))
# Do some work up front, so any errors don't get lost.
if os.path.exists(logpath):
os.rename(logpath, logpath + ".old")
logfd = os.open(logpath, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, o0666)
assert logfd > 2
os.chdir("/")
if os.fork():
os._exit(0)
os.setsid()
if os.fork():
os._exit(0)
close_all_fds(exceptions=[logfd])
fd0 = os.open("/dev/null", os.O_RDONLY)
if fd0 != 0:
os.dup2(fd0, 0)
os.close(fd0)
os.dup2(logfd, 1)
os.dup2(logfd, 2)
os.close(logfd)
# Make these line-buffered:
sys.stdout = os.fdopen(1, "w", 1)
sys.stderr = os.fdopen(2, "w", 1)
# Write out a shell-script so that we can start our proxy in a clean
# environment:
scriptfile = open(scriptpath, "w")
# Unix is a little silly sometimes:
umask = os.umask(0)
os.umask(umask)
if hasattr(os, "fchmod"):
os.fchmod(scriptfile.fileno(), o0700 & ~umask)
else:
os.chmod(scriptpath, o0700 & ~umask)
scriptfile.write(xpra_runner_shell_script(xpra_file, starting_dir))
scriptfile.close()
# Do this after writing out the shell script:
os.environ["DISPLAY"] = display_name
if not clobber:
# We need to set up a new server environment
xauthority = os.environ.get("XAUTHORITY",
os.path.expanduser("~/.Xauthority"))
xvfb_cmd = opts.xvfb.replace("$XAUTHORITY", xauthority).split()
xvfb_executable = xvfb_cmd[0]
xvfb_cmd[0] = "%s-for-Xpra-%s" % (xvfb_executable, display_name)
try:
xvfb = subprocess.Popen(xvfb_cmd+[display_name],
executable=xvfb_executable)
except OSError, e:
sys.stderr.write("Error starting Xvfb: %s\n" % (e,))
return
raw_cookie = os.urandom(16)
baked_cookie = raw_cookie.encode("hex")
#.........这里部分代码省略.........