小编res*_*way的帖子

"lxd"与lxc/docker有什么不同?

问题

  • lxd如何在容器内提供完整的操作系统功能,而不仅仅是单个进程?
  • 它与lxc/docker + wrappers有什么不同?
  • 它是否类似于使用docker + supervisor/wrapper脚本启动的容器,以在一个容器中包含多个进程?

换一种说法:

  • 我能用lxd做些什么,我不能用lxc和docker上的一些包装器做什么?
  • 为什么只有在ubuntu中才能使用主线内核功能(名称空间和cgroup)?

lxc docker lxd

20
推荐指数
3
解决办法
1万
查看次数

我的内核模块使用了多少内存?

lsmod,/ proc/modules和slabinfo,/ proc/meminfo不会给我的内核模块使用多少内存

有没有办法找到这个?

顺便说一句,我基本上写了一个小测试程序,一个设备驱动程序,它接受ioctl调用以分配1MB,我每秒从我的应用程序发送这个ioctl消息,所以我的驱动器每秒都会执行kmalloc.我无法看到"cat/proc/meminfo | grep Slab"的增加

- 剪断---

int device_ioctl(
         struct file *file,
         unsigned int ioctl_num, 
         unsigned long ioctl_param)
{
    /* 
     * Switch according to the ioctl called 
     */
    printk ( "<l> inside ioctl %d IOCTL_ALLOC_MSG = %d\n", ioctl_num,IOCTL_ALLOC_MSG );
    switch (ioctl_num) {
    case IOCTL_ALLOC_MSG:
        allocfunc(); // kmalloc 1MB // printk in this function is OK
        break;
    case IOCTL_DEALLOC_MSG:
        deallocfunc();
        break;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

应用/用户空间

 while ( !stop )
        {
            ret_val = ioctl(memfile, IOCTL_ALLOC_MSG);

            if (ret_val < …
Run Code Online (Sandbox Code Playgroud)

c linux memory kernel

10
推荐指数
1
解决办法
3695
查看次数

如何将pkg-config名称映射到yum/apt-get

许多makefile使用pkg-config,但名称与包管理器无关(例如yum/apt).如何将pkg-config名称映射到它们?有诀窍吗?

示例:如果我这样做yum searchName- 查看名称并接近pkg-config的名称

结果:

$ pkg-config --libs dbus-glib-0
Package dbus-glib-0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `dbus-glib-0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'dbus-glib-0' found

$ sudo yum install dbus-glib
Loaded plugins: langpacks, refresh-packagekit
Package dbus-glib-0.100-5.fc19.i686 already installed and latest version
Nothing to do

$ sudo yum install dbus-glib-0
Loaded plugins: langpacks, refresh-packagekit
No package dbus-glib-0 available.
Error: Nothing to do
Run Code Online (Sandbox Code Playgroud)

apt pkg-config yum apt-get

7
推荐指数
2
解决办法
3222
查看次数

如何衡量流程的堆栈大小?

如何找到进程的堆栈大小?/ proc/5848/status给了我VmStk,但这并没有改变

无论我在测试程序中执行的循环和递归有多少,这个值几乎没有变化.

当我查看/ proc/pid/status时,所有进程都有136k,并且不知道该值来自何处.

谢谢,

linux

6
推荐指数
1
解决办法
1万
查看次数

从返回的葡萄 api 字符串中删除引号

我想从我的葡萄/休息 api 返回原始数据/blob。

我关注了以下线程:https : //github.com/intridea/grape/issues/412

对于像这样的代码:

get 'foo' do
  content_type 'text/plain'
  "hello world"
end
Run Code Online (Sandbox Code Playgroud)

1)我使用:格式'txt' - 我得到了引用文本,如:“hello world”在浏览器上没有错误,curl给出了Content-Type:text/plain但引号没有被删除

2) env['api.format'] = :txt 在浏览器中给出错误

3) content_type :txt, 'text/plain' 在浏览器中给出错误数量的 args

还有其他方法可以解决这个问题吗?

谢谢。

html ruby thin ruby-grape

5
推荐指数
1
解决办法
1061
查看次数

如何为 terraform apply 设置超时?

很多时候,当我将 terraform apply 应用于某些 tf. 我想设置超时而不是永远持续下去。

谢谢

几个例子 - https://github.com/hashicorp/terraform/issues/16458 https://github.com/terraform-providers/terraform-provider-aws/issues/2068

但他们都专注于具体的解决方案。我不想要无限循环,无论出于何种原因,我只想要一个应用标志,该标志会在特定时间后停止尝试。我正在考虑使用外部命令来杀死它,但我想在实施之前查看是否有实际的 terraform 解决方案。

terraform

5
推荐指数
1
解决办法
4721
查看次数

lua 新手:C-Lua 如何将结构/缓冲区从 C 传递给 lua?

我遵循了这个样板示例:http : //www.matrix44.net/blog/?p=456

我能够将字符串从 C 发送到 Lua,但是当我传递一个结构体时出现错误(我使用了 lua_newuserdata)。

C剪

//s = (ST*) malloc ( sizeof(ST) );
//    lua_pushlightuserdata(state, s);
s = lua_newuserdata(state, sizeof(ST));
s->a=11;
s->b=12;
printf ( "s = %p \n", s ); // Prints 0x80a708
result = lua_pcall(state, 0, LUA_MULTRET, 0);
Run Code Online (Sandbox Code Playgroud)

Lua 截图

print(foo)  -->  Prints 0x80a708
io.write("received has:\n", foo.a); --> ERROR : Failed to run script: script.lua:1: attempt to index global 'foo' (a userdata value)
Run Code Online (Sandbox Code Playgroud)

如何将缓冲区转换为结构/表记录?

最终,我的 C 程序不知道结构,它只会将缓冲区传递给 Lua,而 Lua 知道该结构并且需要在那里进行转换。

谢谢, PS:脚本和 C 程序的 printf …

lua

3
推荐指数
1
解决办法
4705
查看次数

NFS服务器和NFS客户端的Iptables规则

没有iptables规则我可以​​挂载我的NFSSERVER:/PATH但启用它(firewall/ iptables)我无法挂载.

[.e.g., after iptables --flush/ firewaalld stop ; mount NFSSERVER:/Path works ]
Run Code Online (Sandbox Code Playgroud)

我不应该禁用/清除firewall/ iptables但我可以打开一个端口.打开端口/挂载需要添加的规则是什么?

目前的默认策略是DROP all INCOMING/OUTGOING/FORWARD,允许来自外部80端口等的wget有几条规则,

添加NFS服务器端口没有帮助.

iptables -A OUTPUT -p tcp --dport 2049 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --sport 2049 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp --dport 2049 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp --sport 2049 -m state --state …
Run Code Online (Sandbox Code Playgroud)

nfsclient iptables

3
推荐指数
2
解决办法
3万
查看次数

将数组转换为哈希并初始化为值

转换数组的最佳方法是什么?

arr = ["one", "two", "three", "four", "five"]
Run Code Online (Sandbox Code Playgroud)

哈希

{"one"=>0, "two"=>0, "three"=>0, "four"=>0, "five"=>0}
Run Code Online (Sandbox Code Playgroud)

我打算稍后用我自己的值填充'0',我现在只需要这个技术.

谢谢.

ruby

3
推荐指数
2
解决办法
71
查看次数

内联函数是原子的吗?

如果有两个线程调用此问题,那么我可以解决以下代码中解锁后的linux上下文切换问题

inline bool CMyAutoLock::Lock(
    pthread_mutex_t *pLock,
    bool bBlockOk 
)
throw ()
{
    Unlock();
    if (pLock == NULL)
        return (false);
// **** can context switch happen here ? ****///
    return ((((bBlockOk)? pthread_mutex_lock(pLock) :
        pthread_mutex_trylock(pLock)) == 0)? (m_pLock = pLock, true) : false);
}
Run Code Online (Sandbox Code Playgroud)

c++ linux inline atomicity

2
推荐指数
1
解决办法
552
查看次数

标签 统计

linux ×3

ruby ×2

apt ×1

apt-get ×1

atomicity ×1

c ×1

c++ ×1

docker ×1

html ×1

inline ×1

iptables ×1

kernel ×1

lua ×1

lxc ×1

lxd ×1

memory ×1

nfsclient ×1

pkg-config ×1

ruby-grape ×1

terraform ×1

thin ×1

yum ×1