小编eha*_*enr的帖子

Unix权限设置速度

添加/减去权限与明确设置权限之间是否存在明显的速度差异?

例如:

chmod a+r
Run Code Online (Sandbox Code Playgroud)

VS

chmod 755
Run Code Online (Sandbox Code Playgroud)

unix linux security file-permissions

4
推荐指数
1
解决办法
60
查看次数

按字母顺序排序bash参数

如何按字母顺序排序bash参数?

$ ./script.sh bbb aaa ddd ccc
Run Code Online (Sandbox Code Playgroud)

并把它放入一个数组,这样我现在有一个数组{aaa,bbb,ccc,ddd}

bash

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

在Docker中向Golang应用程序发送信号

我正在尝试运行在docker容器内的golang编写的服务器.例如:

package main

import "net/http"

func main() {
  http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("Hello"))
  })
  http.ListenAndServe(":3000", nil)
}
Run Code Online (Sandbox Code Playgroud)

如果我在我的本地机器上运行此代码,我可以把它SIGINTCtrl-C,它会关闭应用程序.当我在一个docker容器中运行它时,我似乎无法用它来杀死它Ctrl-C.

# Dockerfile
FROM ubuntu:14.04

RUN apt-get update && apt-get -y upgrade
RUN apt-get install -y golang

ENV GOPATH /go

COPY . /go/src/github.com/ehaydenr/simple_server

RUN cd /go/src/github.com/ehaydenr/simple_server && go install

CMD /go/bin/simple_server
Run Code Online (Sandbox Code Playgroud)

然后我继续使用docker向容器发送信号.

docker kill --signal=INT 9354f574afd4
Run Code Online (Sandbox Code Playgroud)

仍在运行...

docker kill --signal=TERM 9354f574afd4
Run Code Online (Sandbox Code Playgroud)

仍在运行...

docker kill --signal=KILL 9354f574afd4
Run Code Online (Sandbox Code Playgroud)

终于死了.

我没有在代码中捕获任何信号而忽略它们.我甚至尝试增加上面的代码来捕获信号并将它们打印出来(它可以在我的主机上运行,​​但是当它在容器中时,就像信号永远不会进入程序一样).

有谁之前经历过这个吗?我还没有尝试过这样的事情在另一种语言,但我能杀服务器(例如mongo,nginx)使用Ctrl-C,而他们是在一个码头工人容器..为什么不去会得到的信号? …

go docker boot2docker dockerfile

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

Golang MongoDB(mgo)查找反射错误

使用以下代码

func (s Store) Lookup(department string, number string) (*types.Course, error) {
    var result *types.Course
    err := s.collection.Find(bson.M{
        "department":    department,
        "course_number": number,
    }).One(result)

    if err != nil {
        switch err {
        case mgo.ErrNotFound:
            return nil, ErrNotFound
        default:
            log.Error(err)
            return nil, ErrInternal
        }
    }

    return result, nil
}
Run Code Online (Sandbox Code Playgroud)

我遇到了错误:

reflect: reflect.Value.Set using unaddressable value
Run Code Online (Sandbox Code Playgroud)

如果我更改从第一行var result *types.Courseresult := &types.Course{}没有错误.这两者究竟有什么区别?

go mongodb mgo

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

标签 统计

go ×2

bash ×1

boot2docker ×1

docker ×1

dockerfile ×1

file-permissions ×1

linux ×1

mgo ×1

mongodb ×1

security ×1

unix ×1