可能的重复:
我可以 nohup/screen 一个已经启动的进程吗?
在 Unix(特别是 Linux)上,我在常规 ssh->bash 会话中开始了一项工作。我想尽快下班,但我现在意识到这项工作需要几个小时。
如果我刚刚在银幕上开始这项工作,我可以分离回家。但我没有。
有什么方法可以断开作业与其 ssh 会话的连接,这样我就可以关闭我的计算机(断开 TCP 连接并终止 ssh 会话),并且程序继续运行?
我不在乎它的输出——事实上,我将 stdout 重定向到了一个文件。我只是想让它运行完成。
众所周知,您永远不应该 fsck 已安装的分区。我可以理解,如果文件系统是由 fsck写入的(例如,使用 -a 选项),这很容易导致损坏,但是为什么不能在已安装的磁盘上运行只读检查?
我们有一个工作角色帐户,它有一个非常大的 crontab。它的 MAILTO 指向一个共享地址,因此如果出现问题,我们中的许多人都会收到通知。
我想在这个 crontab 中添加一个条目,但我只想在出现问题时收到通知。有没有办法为这个条目更改 MAILTO,或者以其他方式实现我的目标?
据我了解,类 Unix 操作系统上的每个文件都有一个 inode 编号(可以用“ls -i”查看),每个 inode 是一个包含文件实际数据的磁盘块列表。
是否有一个 Linux 命令将文件名作为其参数并打印出该文件的 inode 指向的磁盘块列表?
PS 有问题的文件系统是 ext3。
我有一个标准 syslog 格式的日志文件。它看起来像这样,除了每秒数百行:
Jan 11 07:48:46 blahblahblah...
Jan 11 07:49:00 blahblahblah...
Jan 11 07:50:13 blahblahblah...
Jan 11 07:51:22 blahblahblah...
Jan 11 07:58:04 blahblahblah...
Run Code Online (Sandbox Code Playgroud)
它不会恰好在午夜滚动,但它永远不会超过两天。
我经常需要从这个文件中提取一个时间片。我想为此编写一个通用脚本,我可以调用它:
$ timegrep 22:30-02:00 /logs/something.log
Run Code Online (Sandbox Code Playgroud)
...并让它从 22:30 开始拉出线路,越过午夜边界,直到第二天凌晨 2 点。
有几个注意事项:
在我花大量时间写这篇文章之前,它是否已经存在?
假设我有一个四核盒子和四个相同的进程,每个进程有十个线程。在 Linux 中,是否可以说进程 A 只允许在 CPU 0 上运行,进程 B 只允许在 CPU 1 上运行,等等?
我更喜欢安装我自己的 Firefox 版本。我如何告诉 apt 永远不要尝试升级它,即使我稍后输入“apt-get update ; apt-get upgrade”?
编辑:好的,所以dpkg -l firefox打印这个:
ii firefox 3.0.3+nobinonly-0ubuntu2 meta package for the popular mozilla web browser
Run Code Online (Sandbox Code Playgroud)
所以我将此添加到我的首选项中:
Package: firefox
Pin: version 3.*
Pin-Priority: 1000
Run Code Online (Sandbox Code Playgroud)
但 apt-get upgrade 仍然打印:
The following packages have been kept back:
(nothing related to firefox)
The following packages will be upgraded:
(blah blah blah)
firefox firefox-3.0 firefox-3.0-branding firefox-3.0-gnome-support
firefox-gnome-support
(blah blah blah)
Run Code Online (Sandbox Code Playgroud)
我也尝试制作包“ *firefox*”,但这也不起作用。
当我在 Firefox 中单击 *.json 或 *.patch 文件时,它会询问我想在哪个外部应用程序中查看它。
但是,我不想使用外部应用程序。它是纯文本——我只想在浏览器中查看它。
用户界面中似乎没有任何内容。
我喜欢 Ubuntu 的 NetworkManager——它在跟踪我所有的 WiFi 参数和密码方面做得很好。然而,当我真正插入以太网电缆时,沮丧就开始了。
当连接到我的工作局域网时,我想强制使用特定的域搜索路径。但我不能只编辑 resolv.conf,因为 NetworkManager 将始终覆盖它。而且我无法更改 DHCP 服务器上的设置。
作为一个彻底的黑客,我设置了一个脚本,以便在网络启动时运行。它查看resolv.conf,如果它是来自工作局域网的文件,它就会覆盖它。然而,这还不够好——似乎定期 resolv.conf 会被一些不会触发我的脚本的东西覆盖。
有没有更简单的方法来做到这一点?或者甚至是一种更hacky的方式,前提是它确实有效?
这是我的 /etc/dhcp3/dhclient.conf:
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
netbios-name-servers, netbios-scope, interface-mtu;
timeout 60;
alias {
interface "eth0";
fixed-address 192.168.1.222;
}
lease {
interface "eth0";
fixed-address 192.168.1.222;
option subnet-mask 255.255.255.0;
option broadcast-address 255.255.255.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.254;
}
Run Code Online (Sandbox Code Playgroud)
当我运行“dhclient eth0”时,我得到了这个:
There is already a pid file /var/run/dhclient.pid with pid 6511
killed old client process, removed PID file
Internet Systems Consortium DHCP Client V3.1.1
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/ …Run Code Online (Sandbox Code Playgroud) 我有一个数据库(它是 Postgres,如果这很重要),我想取出其中的两个表,导出它们,然后将它们导入另一个数据库。我怎么做?
编辑添加谷歌诱饵:转储
linux ×8
unix ×6
filesystems ×3
dhcp ×2
ext3 ×2
apt ×1
cron ×1
database ×1
firefox ×1
gnu-screen ×1
grep ×1
log-files ×1
postgresql ×1
sql ×1
ubuntu ×1