immortal alternatives and similar packages
Based on the "Utilities" category.
Alternatively, view Immortal alternatives based on common mentions on social networks and blogs.
-
项目文档
基于vite+vue3+gin搭建的开发基础平台(支持TS,JS混用),集成jwt鉴权,权限管理,动态路由,显隐可控组件,分页封装,多点登录拦截,资源权限,上传下载,代码生成器,表单生成器,chatGPT自动查表等开发必备功能。 -
excelize
Go language library for reading and writing Microsoft Excel™ (XLAM / XLSM / XLSX / XLTM / XLTX) spreadsheets -
godotenv
A Go port of Ruby's dotenv library (Loads environment variables from .env files) -
xlsx
(No longer maintained!) Go (golang) library for reading and writing XLSX files. -
hystrix-go
Netflix's Hystrix latency and fault tolerance library, for Go -
go-funk
A modern Go utility library which provides helpers (map, find, contains, filter, ...) -
Kopia
Cross-platform backup tool for Windows, macOS & Linux with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication. CLI and GUI included. -
gorequest
GoRequest -- Simplified HTTP client ( inspired by nodejs SuperAgent ) -
goreporter
A Golang tool that does static analysis, unit testing, code review and generate code quality report. -
gojson
Automatically generate Go (golang) struct definitions from example JSON -
lancet
A comprehensive, efficient, and reusable util function library of Go. -
create-go-app
✨ Create a new production-ready project with backend, frontend and deploy automation by running one CLI command! -
spinner
Go (golang) package with 90 configurable terminal spinner/progress indicators. -
EaseProbe
A simple, standalone, and lightweight tool that can do health/status checking, written in Go. -
filetype
Fast, dependency-free Go package to infer binary file types based on the magic numbers header signature -
boilr
:zap: boilerplate template manager that generates files or directories from template repositories -
mole
CLI application to create ssh tunnels focused on resiliency and user experience. -
beaver
💨 A real time messaging system to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps. -
mimetype
A fast Golang library for media type and file extension detection, based on magic numbers -
go-underscore
Helpfully Functional Go - A useful collection of Go utilities. Designed for programmer happiness. -
JobRunner
Framework for performing work asynchronously, outside of the request flow -
git-time-metric
Simple, seamless, lightweight time tracking for Git
Clean code begins in your IDE with SonarLint
Do you think we are missing an alternative of immortal or a related project?
Popular Comparisons
README
⭕ immortal
A *nix cross-platform (OS agnostic) supervisor
Linux precompiled binaries
run on behalf other system user
If services need to run on behalf other system user www, nobody, www-data
,
not root
, immortal should be compiled from source for the desired
target/architecture, otherwise, this error may be returned:
Error looking up user: "www". user: Lookup requires cgo
See more: https://golang.org/cmd/cgo/
If using FreeBSD or macOS you can install using pkg/ports or homebrew, for other platforms work is in progress, any help for making the port/package for other systems would be appreciated.
Compile from source
Setup go environment https://golang.org/doc/install
go >= 1.12 is required
For example using $HOME/go for your workspace
$ export GOPATH=$HOME/go
Create the directory:
$ mkdir -p $HOME/go/src/github.com/immortal
Clone project into that directory:
$ git clone [email protected]:immortal/immortal.git $HOME/go/src/github.com/immortal/immortal
Build by just typing make:
$ cd $HOME/go/src/github.com/immortal/immortal
$ make
To install/uninstall:
$ make install
$ make uninstall
configuration example
Content of file /usr/local/etc/immortal/www.yml
:
# pkg install go-www
cmd: www
cwd: /usr/ports
log:
file: /var/log/www.log
age: 10 # seconds
num: 7 # int
size: 1 # MegaBytes
wait: 1
require:
- foo
- bar
If foo
and bar
are not running, the service www
will not be started. Skip age
, num
& size
options to avoid log-rotation
completely.
foo
andbar
are the names for the services defined on the same path www.yaml is located, foo.yml & bar.yml
Paths
When using immortaldir:
/usr/local/etc/immortal
|--foo.yml
|--bar.yml
`--www.yml
The name of the file.yml
will be used to reference the service to be
daemonized excluding the extension .yml
.:
foo
bar
www
/var/run/immortal/
/var/run/immortal
|--foo
| |-lock
| `-immortal.sock
|--bar
| |-lock
| `-immortal.sock
`--www
|-lock
`-immortal.sock
immortal like non-root user
Any service launched like not using using immortaldir
will follow this
structure:
~/.immortal
|--(pid)
| |--lock
| `--immortal.sock
|--(pid)
| |--lock
| `--immortal.sock
`--(pid)
|--lock
`--immortal.sock
immortalctl
Will print current status and allow to manage the services
debug
pgrep -fl "immortal -ctl" | awk '{print $1}' | xargs watch -n .1 pstree -p
Test status using curl & jq
status:
curl --unix-socket immortal.sock http:/status -s | jq
note the single '/' https://superuser.com/a/925610/284722
down:
curl --unix-socket immortal.sock http://im/signal/d -s | jq
up:
curl --unix-socket immortal.sock http://im/signal/u -s | jq