Coder Social home page Coder Social logo

init-exporter's People

Contributors

andyone avatar dependabot[bot] avatar miros avatar vassilevsky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

miros qnester

init-exporter's Issues

Upstart: reload_signal does not work on CentOS 6

Bug report

System info:

  • Version used: 0.21.0
  • OS (cat /etc/*-release): CentOS 6
  • Kernel (uname -a): 2.6.32

System info:

  1. Create Procfile with the reload_signal option defined.
  2. Export given procfile to upstart.
  3. Start upstart job.
  4. Run reload command using initctl.

Expected behavior:

Command reload sends defined signal to the process.

Actual behavior:

Upstart configuration is broken with the Unknown stanza message. Upstart job cannot be started.

Additional info:

Issue happens due to unsupported stanza reload in upstart 0.6.5 that ships with CentOS 6 distro.

Possible solutions:

  1. Remove this feature for upstart-driven systems.
  2. Verify upstart version installed and forbid using this feature.
  3. Check configuration using init-checkconf utility (does not exist on CentOS 6).
  4. Update upstart to the latest stable version (sic!) and verify upstart version installed.

Provide a way to set the resource limits in the systemd unit files

Systemd has its own resource control options: https://www.freedesktop.org/software/systemd/man/systemd.exec.html

LimitCPU=, LimitFSIZE=, LimitDATA=, LimitSTACK=, LimitCORE=, LimitRSS=, LimitNOFILE=, LimitAS=, LimitNPROC=, LimitMEMLOCK=, LimitLOCKS=, LimitSIGPENDING=, LimitMSGQUEUE=, LimitNICE=, LimitRTPRIO=, LimitRTTIME=

We need to set LimitNOFILE and LimitNPROC to something different than default values.
Also it would be great to make them configurable by user.

Typo in the uninstall option name

$ sudo upstart-export --uninstall --format upstart myapp
Error while arguments parsing:
  Argument --uninstall is not supported

I believe that the right spelling is uninstall :)

[Feature Request] Add LimitMEMLOCK option

Hi!
We'd love to have configurable in procfile LimitMEMLOCK option because some services/utils (e.g. elastic) demand to customise it.
I found limits parsing in source code here, but there is no MEMLOCK support. Hope you'll find it reasonable to add it.

Procfile definitions for systemd.resource-control settings

Hello everyone,

I suppose that would be nice to implement systems.resource-control options to limit applications by CPU, RAM, I/O etc. from the Procfile definition.

On the one hand, it might be useful for those people, who run multiple applications on one server and want to assign particular amount of systems resources. On the other hand, it works only with systemd whereas upstart supervisor does not have this feature out-of-box.

What do you think? Let's discuss this further.

Systemd: reload_signal does not work on CentOS 7

Bug report

System info:

  • Version used: 0.21.0
  • OS (cat /etc/*-release): CentOS 7
  • Kernel (uname -a): 3.10.0

System info:

  1. Create Procfile with the reload_signal option defined.
  2. Export given procfile to systemd.
  3. Start systemd unit.
  4. Run reload command using systemctl.

Expected behavior:

Command reload sends defined signal to the process.

Actual behavior:

systemd sends signal to parent process, whose helper does not handle signal and does not forward to its child process. So child process is unable to trap and process the signal.

Additional info:

Possible solutions:

  1. Declare trap inside init-exporter helpers with given signal and sigHandler which sends signal to child process.
  2. Provide mechanism to use custom ExecReload command (not only kill).

Unable to set arbitrary environment values

A attempt to export simple procfile v2 with command section like the following:

commands:
  app1:
    env:
      JAVA_OPTS: '"-Xms512m -Xmx1g -XX:+HeapDumpOnIutOfMemoryError"'
      LOADER_SYSTEM: true
    command: bin/run-something

leads to export failure with error message:

Errors while application validation:
- Environment variable value "-Xms512m -Xmx1g -XX:+HeapDumpOnOutOfMemoryError" is insecure and can't be accepted

I believe it is quite common to setup some configuration through environment variables defined that way, so it seems that validation rules applied on export are too strict.

[Feature Request] Add global log file option

Hi ๐Ÿ‘ป

It would have been nice for low-volume services to have a single log file for all processes.

Now it requires repeating the log option in each process:

# Procfile.v2

commands:
  foo:
    command: foo
    log: log/common.log
  bar:
    command: bar
    log: log/common.log

Common log option would have been more convenient:

# Procfile.v2

log_file: log/common.log

commands:
  foo:
    command: foo
  bar:
    command: bar

Thanks ๐Ÿ™

Systemd: reload_signal for CentOS 7

Continuing the issue #57

Feature Request

Proposal:

Return setting reload_signal for CentOS 7 (systemctl). Use it in the property ExecReload. Use the command pkill instead kill.

ExecReload=/bin/pkill -SIGUSR2 -P $MAINPID

Current behavior:

reload_signal is not supported

Desired behavior:

I would like to, when executing the command systemctl reload sends defined signal to the process.

Add Python version manager (pyenv)

Feature Request

Proposal:

Add pyenv version manager for Python in addition to rbenv to init-exporter on the analogy of rbenv.

Current behavior:

pyenv is not supported by init-exporter.

Desired behavior:

Would be nice to have the following line in the helper program:

[[ -r /etc/profile.d/pyenv.sh ]] && source /etc/profile.d/pyenv.sh

Use case:

It would allow use Python-written programs using pyenv without a necessity to craft a wrapper on application level that exports environment variables.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.