标签: lsb

某些 debian 版本没有 lsb_release 吗?

我正在发布的 .deb 包期望它可以调用 lsb_release。一位使用 Debian 6.0.5 的客户表示 lsb_release 命令(甚至在终端中)会产生命令未找到错误。这是标准还是他的 Debian 构建有问题?

debian lsb debian-squeeze

35
推荐指数
2
解决办法
4万
查看次数

Debian 8:没有可用的 LSB 模块

当我lsb_release在 Debian 8 上运行时,出现以下错误:

No LSB modules are available.
Run Code Online (Sandbox Code Playgroud)

是否有任何丢失的文件导致此问题?

lsb debian-jessie

13
推荐指数
2
解决办法
2万
查看次数

什么是 status_of_proc,我该如何称呼它?

在 Debian 7 (Wheezy) 中 nginx 的初始化脚本中,我阅读了以下摘录:

status)
            status_of_proc -p /var/run/$NAME.pid "$DAEMON" nginx && exit 0 || exit $?
            ;;
Run Code Online (Sandbox Code Playgroud)

此代码运行良好并sudo service nginx status输出[ ok ] nginx is running. 然而status_of_proc没有在 bash 中定义,也没有在 dash 中定义:

$ type status_of_proc
status_of_proc: not found
Run Code Online (Sandbox Code Playgroud)

虽然如果我将相同的检查插入到 nginx 脚本中,我会得到以下结果:

status_of_proc is a shell function
Run Code Online (Sandbox Code Playgroud)

在 init 文件本身上运行 bash 提供了进一步的解释:

status_of_proc is a function
status_of_proc () 
{ 
    local pidfile daemon name status OPTIND;
    pidfile=;
    OPTIND=1;
    while getopts p: opt; do
        case …
Run Code Online (Sandbox Code Playgroud)

lsb init.d debian-wheezy

11
推荐指数
1
解决办法
1万
查看次数

是否有一个很好的总结,说明 linux 安装中每个主要文件夹中应该包含的内容?

例如 bin、sbin、proc、lib、boot、usr 等...

某处是否有标准列表,是否取决于发行版?

这基本上是为了回答我的常见问题“我正在服务器上安装 X 或放置 Y,我应该将它放在哪个文件夹中?”

linux directory lsb

8
推荐指数
2
解决办法
167
查看次数

从带有 start-stop-daemon 的 LSB init 脚本启动 PHP 守护进程

我正在编写一个 lsb init 脚本(不可否认,我从未从头开始做过)它启动了一个守护进程的 php 脚本。php 脚本是这样开始的:

#!/usr/bin/env php
<?php
/* do some stuff */
Run Code Online (Sandbox Code Playgroud)

然后在 init 脚本中像这样启动:

# first line is args to start-stop-daemon, second line is args to php-script
start-stop-daemon --start --exec /path/to/executable/php-script.php \
  -- --daemon --pid-file=$PIDFILE --other-php-script-args
Run Code Online (Sandbox Code Playgroud)

--daemon标志导致 php 脚本分离并作为守护程序本身运行,而不是依赖于start-stop-daemon分离它。

这就是它(试图)在 init 脚本中停止它的方式:

start-stop-daemon --stop --oknodo --exec /path/to/executable/php-script.php \
  --pidfile $PIDFILE
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试通过 init 脚本停止时,它给了我这个:

$ sudo /etc/init.d/my-lsb-init-script stop
 * Stopping My Project
No /path/to/executable/php-script.php found running; none killed.
   ...done.
Run Code Online (Sandbox Code Playgroud)

快速浏览一下ps告诉我,尽管 php …

php bash daemon lsb init.d

6
推荐指数
1
解决办法
9646
查看次数

如何检测linux发行版和版本?

我想检测 linux 发行版和版本。

我用我最喜欢的搜索引擎搜索并发现了lsb_release.

不幸的是,默认情况下未安装此工具。

我想避免先安装lsb_release

有没有更简单的方法来以可移植的方式检测 linux 发行版和版本?

“便携式”是指不同类型的 linux 发行版。不是 *BSD 或 Windows。

linux lsb

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

Redhat init 脚本最佳实践

我想编写一个 init 服务脚本,它以特定用户(而不是 root)身份运行程序。然后我将 chkconfig 这个脚本并安装到我的生产运行级别。

我可以在脚本中放置一个 su 命令,但我想知道是否有这样做的最佳实践。

谢谢,加里

linux redhat lsb rhel5 init.d

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

在 Debian 10 Buster 中创建自定义 /etc/init.d 脚本

我需要开发一个/etc/init.d脚本来启动和停止 Debian 10 Buster 中的服务器(二进制可执行文件)。而在 Debian 的早期版本中,您将编写一个完整的 shell 脚本来发出对 的调用'start-stop-daemon',而在最近的版本中,这些机制似乎已经被抽象掉了。手册页'init-d-script'提供了一个简单的脚本,该脚本将根据设置单个变量来启动和停止服务器'DAEMON'

但是,我需要在服务器启动后通过将锁定文件写入磁盘来进行自定义,更改当前工作目录并将自定义参数传递给服务器。

手册页指的是开发覆盖函数,例如'do_start_override''do_stop_override'可能会被调用而不是默认函数。我应该如何编写覆盖函数?我应该'do_start_cmd()'从中复制和粘贴函数'/lib/init/init-d-script'并修改它吗?或者我应该调用'start_daemon()'中定义的函数'/lib/lsb/init-functions'

debian lsb init.d systemd debian-buster

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