在 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 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 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配置文件;我安装软件时拒绝允许自动更新)
我最近从以前的 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 个小时的谷歌结果后,我现在对这个问题一无所知。
我有一个 Ubuntu 服务器,我在其中使用ufw. 我启用了日志记录,但我不知道在哪里可以找到日志。日志可能在哪里或为什么可能ufw不记录?
当我通过 ssh 登录到我的服务器时,我试图让以下命令自动执行:
ssh-agent /bin/bash
ssh-add ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
我的 ssh 密钥有一个密码短语,每次登录输入一次就可以了。
我尝试将它放在我的 .bashrc 文件中,但是我相信 ssh-agent 会启动一个新的 bash 会话。当我在我的 .bashrc 中有这个后尝试登录时,它卡住了,我必须输入“退出”才能看到“输入密码以解锁密钥”提示
还有其他建议吗?
服务器正在运行 Ubuntu LTS
如何从 Linux(特别是 Ubuntu)的命令行删除设备上的所有分区?我尝试查看 fdisk,但它显示了一个交互式提示。我正在寻找一个命令,我可以提供一个设备路径(例如 /dev/sda),它会删除 ext4、linux-swap 以及它找到的任何其他分区。本质上,这与我打开 GParted 并手动选择和删除所有分区是一样的。这看起来相当简单,但不幸的是,我无法通过谷歌找到任何东西。
我正在使用 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) 我通过将可执行文件放在/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)
我想在以下情况下从我的脚本中收到电子邮件:
我安装了SSMTP并且可以正常工作,我从我的 Google 帐户发送邮件。SSMTP 只能使用一个帐户发送邮件这一事实对我来说不是问题。它只是一个家庭服务器,我拥有的用户无法添加 cron-jobs。
我想知道脚本的邮件通常如何在 Linux/Unix 中工作,特别是在 Ubuntu 中。我也想知道在上述两种情况下有什么好方法可以让我收到邮件。
我有一个 debian(技术上是 ubuntu)源包,即 .dsc、.tar.gz 等,我想构建它。将dpkg-buildpackage失败,因为我没有所有的编译依赖。
通常我会使用apt-get build-dep,但这个包不在 apt 中。
给定一个源包,是否有一种“干净”、“正确”的方式来安装所有构建依赖项。我知道我可以打开 debian/control 文件,但我很好奇是否有“正确”的方法。
我已经安装了build-essential,并且拥有所有正常的编译器等,这个包需要额外的软件。