标签: ubuntu

在 /var/run 中写入 PID 文件需要什么权限?

在 Ubuntu 上:

touch: cannot touch `/var/run/test.pid': Permission denied
Run Code Online (Sandbox Code Playgroud)

我正在启动 start-stop-daemon 并且喜欢将 PID 文件写入 /var/run start-stop-daemon is run as my-program-user

/var/run setting is drwxr-xr-x  9 root  root
Run Code Online (Sandbox Code Playgroud)

我喜欢避免将 my-program-user 放在根组中。

ubuntu permissions root pid

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

无头 Ubuntu 服务器机器有时卡在 GRUB 菜单

我在半嵌入式环境中的单板机器上安装了 Ubuntu 10.10 Server;没有键盘或屏幕,只需通过 SSH 访问即可。

所以当它偶尔启动并卡在 GRUB 菜单上,等待按键选择第一个选项时,真的很令人沮丧。

如何将 GRUB 配置为在任何情况下都不等待击键?

更新 #1:没有 menu.lst,因为这是 GRUB 2。但我确实有一个 /etc/default/grub,如下所示:

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""
Run Code Online (Sandbox Code Playgroud)

更新#2:我想通了。在引导失败后的引导上,GRUB 禁用自己的超时。由于显示菜单会使启动失败,因此这是一个不可避免的循环。可以通过编辑 /etc/grub.d/00_header 文件并更改 make_timeout 函数来禁用此行为:

make_timeout ()
{
    echo "set timeout=0"
}
Run Code Online (Sandbox Code Playgroud)

现在退出并重新运行 grub 配置更新程序脚本:

sudo update-grub2
Run Code Online (Sandbox Code Playgroud)

对我来说,这种行为将成为 Ubuntu Server 的默认行为是没有意义的,Ubuntu Server 是一种用于通过控制台访问的机器的产品。

ubuntu headless grub grub2 ubuntu-10.10

55
推荐指数
3
解决办法
4万
查看次数

Ubuntu Server 消息说可以更新包,但 apt-get 不更新任何

可能的重复:
amazon-ec2 ubuntu 10.04 服务器中的更新

当我登录到 Ubuntu 10.04.2 LTS 服务器时,我看到以下消息:

42 packages can be updated.
18 updates are security updates.
Run Code Online (Sandbox Code Playgroud)

但是当我尝试更新它时,没有任何东西像预期的那样升级:

$ sudo apt-get update
....snip....
Reading package lists... Done
$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
  linux-generic-pae linux-headers-generic-pae linux-image-generic-pae
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Run Code Online (Sandbox Code Playgroud)

为什么没有任何更新,或者为什么 3(来自 apt-get)的计数与 42 不同?什么软件说42不合适?

(其他细节:这是服务器版,没有GUI;我没有接触过apt配置文件;我安装软件时拒绝允许自动更新)

ubuntu apt

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

未知/不支持的存储引擎:InnoDB | MySQL Ubuntu

我最近从以前的 LTS Ubuntu 升级到 Precise,现在 mysql 拒绝启动。当我尝试启动它时,它会抱怨以下内容:

?$ sudo service mysql restart
stop: Unknown instance:
start: Job failed to start
Run Code Online (Sandbox Code Playgroud)

这显示在“/var/log/mysql/error.log”中:

120415 23:01:09 [Note] Plugin 'InnoDB' is disabled.
120415 23:01:09 [Note] Plugin 'FEDERATED' is disabled.
120415 23:01:09 [ERROR] Unknown/unsupported storage engine: InnoDB
120415 23:01:09 [ERROR] Aborting

120415 23:01:09 [Note] /usr/sbin/mysqld: Shutdown complete
Run Code Online (Sandbox Code Playgroud)

我已经检查了所有 mysql 目录的权限以确保它拥有所有权,并且我还重命名了之前的 ib_logs 以便它可以重新制作它们。在查看了 2 个小时的谷歌结果后,我现在对这个问题一无所知。

mysql ubuntu innodb

54
推荐指数
5
解决办法
15万
查看次数

Ubuntu 服务器上 ufw 的日志在哪里?

我有一个 Ubuntu 服务器,我在其中使用ufw. 我启用了日志记录,但我不知道在哪里可以找到日志。日志可能在哪里或为什么可能ufw不记录?

linux ubuntu logging ufw

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

通过 SSH 登录时运行 ssh-agent 和 ssh-add 的直接方法?

当我通过 ssh 登录到我的服务器时,我试图让以下命令自动执行:

ssh-agent /bin/bash
ssh-add ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

我的 ssh 密钥有一个密码短语,每次登录输入一次就可以了。

我尝试将它放在我的 .bashrc 文件中,但是我相信 ssh-agent 会启动一个新的 bash 会话。当我在我的 .bashrc 中有这个后尝试登录时,它卡住了,我必须输入“退出”才能看到“输入密码以解锁密钥”提示

还有其他建议吗?

服务器正在运行 Ubuntu LTS

ubuntu ssh bash bashrc ssh-keygen

53
推荐指数
3
解决办法
8万
查看次数

从命令行删除所有分区

如何从 Linux(特别是 Ubuntu)的命令行删除设备上的所有分区?我尝试查看 fdisk,但它显示了一个交互式提示。我正在寻找一个命令,我可以提供一个设备路径(例如 /dev/sda),它会删除 ext4、linux-swap 以及它找到的任何其他分区。本质上,这与我打开 GParted 并手动选择和删除所有分区是一样的。这看起来相当简单,但不幸的是,我无法通过谷歌找到任何东西。

linux ubuntu partition gparted fdisk

52
推荐指数
7
解决办法
19万
查看次数

debian 软件包版本约定

我正在使用 debian/Ubuntu,并且对软件包的版本感到困惑。使用dpkg -l命令时,我得到:

ii  vim                                 2:7.3.429-2ubuntu2.1                Vi IMproved - enhanced vi editor
ii  vim-common                          2:7.3.429-2ubuntu2.1                Vi IMproved - Common files
ii  vim-runtime                         2:7.3.429-2ubuntu2.1                Vi IMproved - Runtime files
ii  vim-tiny                            2:7.3.429-2ubuntu2.1                Vi IMproved - enhanced vi editor - compact version
ii  virt-what                           1.11-1                              detect if we are running in a virtual machine
ii  w3m                                 0.5.3-5ubuntu1                      WWW browsable pager with excellent tables/frames support
ii  watershed                           6                                   reduce superfluous executions of idempotent command
ii  wget                                1.13.4-2ubuntu1                     retrieves files from the …
Run Code Online (Sandbox Code Playgroud)

package-management ubuntu debian

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

如何从 Ubuntu 中的(失败的)cron-jobs 获取电子邮件?

我通过将可执行文件放在/etc/cron.{daily,hourly,monthly,weekly}. 有很多以cron开头的目录:

kent@rat:~$ ls -ld /etc/cron*
drwxr-xr-x 2 root root 4096 2009-06-06 18:52 /etc/cron.d
drwxr-xr-x 2 root root 4096 2009-07-16 13:17 /etc/cron.daily
drwxr-xr-x 2 root root 4096 2009-06-06 18:52 /etc/cron.hourly
drwxr-xr-x 2 root root 4096 2009-06-06 18:52 /etc/cron.monthly
-rw-r--r-- 1 root root  724 2009-05-16 23:49 /etc/crontab
drwxr-xr-x 2 root root 4096 2009-06-06 18:52 /etc/cron.weekly
Run Code Online (Sandbox Code Playgroud)

我想在以下情况下从我的脚本中收到电子邮件:

  1. 脚本失败并给出非零退出代码。
  2. 剧本有话要告诉我

我安装了SSMTP并且可以正常工作,我从我的 Google 帐户发送邮件。SSMTP 只能使用一个帐户发送邮件这一事实对我来说不是问题。它只是一个家庭服务器,我拥有的用户无法添加 cron-jobs。

我想知道脚本的邮件通常如何在 Linux/Unix 中工作,特别是在 Ubuntu 中。我也想知道在上述两种情况下有什么好方法可以让我收到邮件。

email linux unix ubuntu cron

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

给定一个 debian 源包 - 如何安装 build-deps?

我有一个 debian(技术上是 ubuntu)源包,即 .dsc、.tar.gz 等,我想构建它。将dpkg-buildpackage失败,因为我没有所有的编译依赖。

通常我会使用apt-get build-dep,但这个包不在 apt 中。

给定一个源包,是否有一种“干净”、“正确”的方式来安装所有构建依赖项。我知道我可以打开 debian/control 文件,但我很好奇是否有“正确”的方法。

我已经安装了build-essential,并且拥有所有正常的编译器等,这个包需要额外的软件。

package-management ubuntu debian dpkg apt

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