如何使用unoconv在容器中运行侦听程序(特别是作为侦听器的systemd-nspawn ),以便它可以在后台运行(没有控制台)并被其他进程访问?例如,在一个完美的世界里,它就像这样简单:
# something like this to start the container and program in background
systemd-nspawn -D <container path> --background <unoconv --listener>
# something like this to connect to container and execute command
systemd-run --machine <machine name> <unoconv -f pdf file.txt>到目前为止,我所掌握的最深入的方法是使用驯服系统。用于运行容器的n个种子,它使容器在后台使用machinectl运行。然而,
sudo systemd-run --machine <machine name> ls错误失败:
Failed to create bus connection: Permission denied.我的问题是双重的。第一,你能解决这个错误吗?或者两种(最好),你能给我一个更简单的方法来启动和连接到一个容器和运行命令吗?
(我正在一台没有互联网接入的安全机器上运行Ubuntu )
发布于 2016-08-11 22:27:12
我认为这取决于您想要运行容器的频率和时间。
如果这是您希望在Ubuntu加载后立即运行的东西,每次计算机启动时,我建议您尝试启动应用程序设置。您可以添加任何作为启动“应用程序”进程的终端命令。或者,您可以将脚本放在一起,然后将脚本作为启动过程运行,这将为您提供更好的控制。(请记住,Startup列表中的项是按照名称字段按字母顺序执行的,所以如果执行顺序很重要,那么要么相应地命名它,要么只命名创建一个启动脚本并使其成为唯一的调用。)
如果您想在特定的重新发生时间/日期运行程序,我建议将cron作业放在一起来做同样的事情。
如果你想按需运行它..。对此不太确定。我不太熟悉系统的名称;也许这篇文章或这篇文章会有所帮助。
关于第一个问题,我很困惑。打错机器的名字,也许?容器OS权限与系统运行身份验证选项之间的不匹配?你可以试试sshd或码头集装箱 (如果没有其他操作).
当然,如果您实际上是像"--machine <machine name>“那样键入它,那么将其更改为"--machine=<machine name>”可能只是修复它。:P
https://unix.stackexchange.com/questions/302239
复制相似问题