• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang p2exec.P2ExecArgs类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/square/p2/pkg/p2exec.P2ExecArgs的典型用法代码示例。如果您正苦于以下问题:Golang P2ExecArgs类的具体用法?Golang P2ExecArgs怎么用?Golang P2ExecArgs使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了P2ExecArgs类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: InvokeBinScript

func (hl *Launchable) InvokeBinScript(script string) (string, error) {
	cmdPath := filepath.Join(hl.InstallDir(), "bin", script)
	_, err := os.Stat(cmdPath)
	if err != nil {
		return "", err
	}

	cgroupName := hl.CgroupName
	if hl.CgroupConfigName == "" {
		cgroupName = ""
	}
	p2ExecArgs := p2exec.P2ExecArgs{
		Command:          []string{cmdPath},
		User:             hl.RunAs,
		EnvDirs:          []string{hl.PodEnvDir, hl.EnvDir()},
		NoLimits:         hl.ExecNoLimit,
		CgroupConfigName: hl.CgroupConfigName,
		CgroupName:       cgroupName,
	}
	cmd := exec.Command(hl.P2Exec, p2ExecArgs.CommandLine()...)
	buffer := bytes.Buffer{}
	cmd.Stdout = &buffer
	cmd.Stderr = &buffer
	err = cmd.Run()
	if err != nil {
		return buffer.String(), err
	}

	return buffer.String(), nil
}
开发者ID:rudle,项目名称:p2,代码行数:30,代码来源:hoist_launchable.go


示例2: SetLogBridgeExec

func (pod *Pod) SetLogBridgeExec(logExec []string) {
	p2ExecArgs := p2exec.P2ExecArgs{
		Command: logExec,
		User:    "nobody",
		EnvDirs: []string{pod.EnvDir()},
	}

	pod.LogExec = append([]string{pod.P2Exec}, p2ExecArgs.CommandLine()...)
}
开发者ID:petertseng,项目名称:p2,代码行数:9,代码来源:pod.go


示例3: FinishExecForLaunchable

func (pod *Pod) FinishExecForLaunchable(launchable launch.Launchable) runit.Exec {
	p2ExecArgs := p2exec.P2ExecArgs{
		Command: pod.FinishExec,
		User:    "nobody",
		EnvDirs: []string{pod.EnvDir(), launchable.EnvDir()},
	}

	return append([]string{pod.P2Exec}, p2ExecArgs.CommandLine()...)
}
开发者ID:drcapulet,项目名称:p2,代码行数:9,代码来源:pod.go


示例4: FinishExecForExecutable

func (pod *Pod) FinishExecForExecutable(launchable launch.Launchable, executable launch.Executable) runit.Exec {
	p2ExecArgs := p2exec.P2ExecArgs{
		Command:  pod.FinishExec,
		User:     "nobody",
		EnvDirs:  []string{pod.EnvDir(), launchable.EnvDir()},
		ExtraEnv: map[string]string{launch.EntryPointEnvVar: executable.ServiceName},
	}

	return append([]string{pod.P2Exec}, p2ExecArgs.CommandLine()...)
}
开发者ID:petertseng,项目名称:p2,代码行数:10,代码来源:pod.go


示例5: Executables

func (hl *Launchable) Executables(
	serviceBuilder *runit.ServiceBuilder,
) ([]launch.Executable, error) {
	if !hl.Installed() {
		return []launch.Executable{}, util.Errorf("%s is not installed", hl.Id)
	}

	binLaunchPath := filepath.Join(hl.InstallDir(), "bin", "launch")

	binLaunchInfo, err := os.Stat(binLaunchPath)
	if os.IsNotExist(err) {
		return []launch.Executable{}, nil
	} else if err != nil {
		return nil, util.Errorf("%s", err)
	}

	// we support bin/launch being a file, or a directory, so we check here.
	services := []os.FileInfo{binLaunchInfo}
	serviceDir := filepath.Dir(binLaunchPath)
	if binLaunchInfo.IsDir() {
		serviceDir = binLaunchPath
		services, err = ioutil.ReadDir(binLaunchPath)
		if err != nil {
			return nil, err
		}
	}

	var executables []launch.Executable
	for _, service := range services {
		serviceName := fmt.Sprintf("%s__%s", hl.Id, service.Name())
		p2ExecArgs := p2exec.P2ExecArgs{
			Command:          []string{filepath.Join(serviceDir, service.Name())},
			User:             hl.RunAs,
			EnvDir:           hl.PodEnvDir,
			NoLimits:         hl.ExecNoLimit,
			CgroupConfigName: hl.CgroupConfigName,
			CgroupName:       hl.Id,
		}
		execCmd := append([]string{hl.P2Exec}, p2ExecArgs.CommandLine()...)

		executables = append(executables, launch.Executable{
			Service: runit.Service{
				Path: filepath.Join(serviceBuilder.RunitRoot, serviceName),
				Name: serviceName,
			},
			Exec: execCmd,
		})
	}
	return executables, nil
}
开发者ID:tomzhang,项目名称:p2,代码行数:50,代码来源:hoist_launchable.go


示例6: Executables

func (hl *Launchable) Executables(
	serviceBuilder *runit.ServiceBuilder,
) ([]launch.Executable, error) {
	if !hl.Installed() {
		return []launch.Executable{}, util.Errorf("%s is not installed", hl.ServiceId)
	}

	// Maps service name to a launch.Executable to guarantee that no two services can share
	// a name.
	executableMap := make(map[string]launch.Executable)

	for _, relativeEntryPoint := range hl.EntryPoints {
		absEntryPointPath := filepath.Join(hl.InstallDir(), relativeEntryPoint)

		entryPointInfo, err := os.Stat(absEntryPointPath)
		if os.IsNotExist(err) {
			return []launch.Executable{}, nil
		} else if err != nil {
			return nil, util.Errorf("%s", err)
		}

		// an entry point can be a file or a directory. If it's a file, simply
		// add it to our services map. Otherwise, add each file under it.
		var serviceDir string
		var services []os.FileInfo
		if entryPointInfo.IsDir() {
			serviceDir = absEntryPointPath
			services, err = ioutil.ReadDir(absEntryPointPath)
			if err != nil {
				return nil, err
			}
		} else {
			serviceDir = filepath.Dir(absEntryPointPath)
			services = append(services, entryPointInfo)
		}

		for _, service := range services {
			serviceName := fmt.Sprintf("%s__%s", hl.ServiceId, service.Name())

			// Make sure we don't have two services with the same name
			// (which is possible because) multiple entry points may be
			// specified

			if _, ok := executableMap[serviceName]; ok {
				return nil, util.Errorf("Multiple services found with name %s", serviceName)
			}

			p2ExecArgs := p2exec.P2ExecArgs{
				Command:          []string{filepath.Join(serviceDir, service.Name())},
				User:             hl.RunAs,
				EnvDirs:          []string{hl.PodEnvDir, hl.EnvDir()},
				NoLimits:         hl.ExecNoLimit,
				CgroupConfigName: hl.CgroupConfigName,
				CgroupName:       hl.CgroupName,
			}
			execCmd := append([]string{hl.P2Exec}, p2ExecArgs.CommandLine()...)

			executableMap[serviceName] = launch.Executable{
				Service: runit.Service{
					Path: filepath.Join(serviceBuilder.RunitRoot, serviceName),
					Name: serviceName,
				},
				LogAgent: runit.Service{
					Path: filepath.Join(serviceBuilder.RunitRoot, serviceName, "log"),
					Name: serviceName + " logAgent",
				},
				Exec: execCmd,
			}
		}
	}

	var executables []launch.Executable
	for _, executable := range executableMap {
		executables = append(executables, executable)
	}

	return executables, nil
}
开发者ID:rudle,项目名称:p2,代码行数:78,代码来源:hoist_launchable.go



注:本文中的github.com/square/p2/pkg/p2exec.P2ExecArgs类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang fields.AvailabilityZone函数代码示例发布时间:2022-05-28
下一篇:
Golang manifest.Manifest类代码示例发布时间:2022-05-28
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap