Docker 镜像大多是巨大的,我梦想着一个非常小的nginx镜像。
这个想法是编译它并创建一个仅包含nginx
二进制文件、配置文件、所需共享库等的 Docker 映像。
所以问题是:如何确定编译后的应用程序需要哪些共享库?
知道列表后,我会尝试创建一个包含所有依赖项的文件夹,并将其作为最小的 Docker 容器发送。
这不仅仅是关于 nginx,而是关于如何处理这些情况的通用方法。也许,一些交叉编译技术可以在这里提供帮助?
我正在尝试使用supervisord管理进程,但该进程没有在前台运行的选项:它总是守护进程。(那是 Zabbix 服务器)。
有没有办法用主管管理守护进程?有什么工具可以让它在前台运行?或者,也许,以某种方式使用 pidfile?
我正在为 Docker 准备一个脚本,它只允许一个顶级进程,它应该接收信号,以便我们可以停止它。
因此,我有一个这样的脚本:一个应用程序写入 syslog(本示例中的 bash 脚本),而另一个只是打印它。
#! /usr/bin/env bash
set -eu
tail -f /var/log/syslog &
exec bash -c 'while true ; do logger aaaaaaaaaaaaaaaaaaa ; sleep 1 ; done'
几乎解决了:当顶级进程bash
获得 SIGTERM 时——它存在,但tail -f
继续运行。
tail -f
父进程退出时如何指示退出?例如,它也应该得到信号。
注意:不能使用 bash 陷阱,因为exec
在最后一行完全替换了进程。
我有一个通配符证书*.example.com
(由 GeoTrust 签名),并且将在不同的服务器上托管许多应用程序实例,每个实例都在我的子域上。
我不愿意将我的 OpenSSL 私钥复制给每个客户。如何使用我的证书为各个子域创建子证书而不共享我的证书?
在 Linux 中,我有以下内容id
:
uid=1005(username) gid=1005(username) groups=1005(username),33(www-data),1002(git)
我想将我的有效 gid 更改为,git
以便我创建的所有内容都属于gid
组。例如touch testfile
给owner=username group=git
如何?
与使用挂载的 tmpfs相比,在本地使用 memcached 有什么优势吗?
也许,当内存缓存系统驻留在同一主机上时,最好在 tmpfs 上使用文件层次结构,从而能够使用标准系统 API 和文件处理工具?
我在拇指驱动器上有 MySQL 数据文件,它们在mysql
用户 UID 不同的两台主机上使用。因此,当 MySQL 的文件具有0700
perms 和未知的 UID 作为所有者时,MySQL 无法启动。
我找不到如何更改 MySQL 的 umask(实际上我不喜欢将这些文件共享给所有人的想法),因此我想更改mysql
两台主机上用户的 UID,以便文件属于同一个用户。
我要将 UID 和chown
旧 mysql UID 拥有的所有文件更改为新用户:
usermod --uid 900 --gid 900 mysql # assign the new uid
olduid=67 find / -user $olduid -group $olduid -print0 | xargs -0 chown "mysql:mysql"
这足以让应用程序在一般情况下工作吗?也许,我有更好的选择?
rsyncd
与 rsync over ssh 相比,使用有什么实际好处吗?它真的可以提高速度、稳定性吗?
对于那些习惯于以 Windows 方式进行系统管理的人,您建议使用哪些 GUI 工具来提高 Linux 的可用性?
刚接触 Linux 的用户在需要配置某些东西时经常会感到困惑:编辑文本配置文件对他们来说可能看起来很困难,他们希望 GUI 勾选复选框并得到他们想要的。一个简短的列表包括:硬件问题、驱动程序、Xorg(尤其是!)、性能、网络设置、共享、用户帐户等。
PS 我查看了这里已经提出的问题,发现没有真正集中的应用程序列表。让我们结合我们的知识!社区维基;)
我正在寻找一种音频流解决方案,能够从文件夹(递归)提供内容,并以恒定比特率即时转换为 MP3(或其他):来自其他 MP3 和 FLAC。如果解决方案提供简单的流管理也很好:至少下一个/上一个轨道。
我试过 Ampache,但它没有转换任何东西。
提前致谢。
我用postinst
脚本创建了 *.deb 包。在某些主机上,它会出现错误:
子进程安装后脚本返回错误退出状态 1
是否有记录这些错误的地方,以便我可以获得更详细的信息(例如行号和错误消息)以便对postinst
脚本进行故障排除?
我的脚本有set -e
,所以错误可能出现在任何地方,并且代码什么也没告诉我。
提前致谢。
我已/etc/hdparm.conf
配置为关闭外部 USB 硬盘,但它实际上从未停止过。当我手动将其关闭(hdparm -Y
或设置其降速hdparm -S 36
)时 - 一切都按预期工作。
似乎我的 Ubuntu/etc/hdparm.conf
在重新启动时忽略了 :( 这里有一些有用的信息:
# blkid /dev/sde6: LABEL="BACKUP-HDD" UUID="fee45c66-11bd-49fa-a62a-4a541716e8e1" TYPE="ext2" # ls -lh /dev/disk/按标签 lrwxrwxrwx 1 root root 10 2009-10-19 05:59 BACKUP-HDD -> ../../sde6 # cat /var/log/dmesg /var/log/messages | grep hdparm #tail -n 4 /etc/hdparm.conf /dev/disk/by-label/BACKUP-HDD { apm = 20 spindown_time = 36 支持 }
任何建议如何解决这个问题?
UPD:启动sudo /lib/udev/hdparm
似乎重新读取 /etc/hdparm.conf
,但没有效果:硬盘仍在旋转。
我有一个 USB 硬盘
在Windows中,我曾经单击“安全删除”图标,然后硬盘停止旋转并被卸载。
现在,在Linux中,卸载不会关闭设备,当我移除它的电缆时它会继续旋转。有没有办法关闭硬盘电源?
此外,我想教 KDE 的“设备通知程序”等离子来做到这一点:)
有没有人设法让 Opera 在 Ubuntu 9.04 上运行?
它试图以 IPv6 方式解析域名,并以某种方式从网关获得零回复(IP 地址为零),并且无法连接。
UPD:wireshark 嗅探:
8 5.647832 192.168.1.2 192.168.1.1 DNS 标准查询 A google.com 9 5.649655 192.168.1.1 192.168.1.2 DNS 标准查询响应 A 1.0.0.0
顺便说一句,所有其他网络都很好,包括 Firefox。
我发现的一种解决方案是在内核中禁用 IPv6,但在 9.04 中由于 BUG 而无法实现。
我可以在不使用补丁重建内核的情况下让 Opera 工作吗?
UPD:如果我ping
有一些主机(所以它的 IP 现在被缓存了) - Opera 找到它,然后打开页面确定。也许,有一种方法可以“预先 ping”Opera 尝试连接的所有内容?:))