| 274 | } |
| 275 | |
| 276 | func SelectInitScript(keyword string) (string, error) { |
| 277 | client, err := New() |
| 278 | if err != nil { |
| 279 | return "", err |
| 280 | } |
| 281 | switch client.Name() { |
| 282 | case "systemd": |
| 283 | keyword = strings.TrimSuffix(keyword, ".service") + ".service" |
| 284 | case "openrc": |
| 285 | keyword = strings.TrimSuffix(keyword, ".service") + ".openrc" |
| 286 | case "sysvinit": |
| 287 | if _, err := os.Stat("/etc/rc.common"); err == nil { |
| 288 | keyword = strings.TrimSuffix(keyword, ".service") + ".procd" |
| 289 | } else { |
| 290 | keyword = strings.TrimSuffix(keyword, ".service") + ".init" |
| 291 | } |
| 292 | default: |
| 293 | return "", fmt.Errorf("unsupported manager: %s", client.Name()) |
| 294 | } |
| 295 | return keyword, nil |
| 296 | } |
| 297 | |
| 298 | func GetScriptName(keyword string) (string, error) { |
| 299 | client, err := New() |