工作人员,这个问题适合任何相信Debian linux的人,更准确地说是Raspbian,这是一个在Raspberry Pi上运行的版本:
因为Raspberry Pi的所有用户都应该知道:操作系统安装在SD卡上.问题是SD卡是闪存,这种类型的存储器仅支持有限数量的写操作.
我想知道Raspbian是否在闲置时写入SD卡.如果发生这种情况,我该怎么禁用?
我找到了这个:
DavidHärdeman在闪存设备上运行Linux的提示
如果您在USB闪存密钥上运行NSLU2,那么您可能需要做很多事情以减少底层闪存设备的磨损(因为它只支持有限数量的写入).
注意:本文档目前描述了Debian etch(4.0),需要更新到Debian squeeze(6.0)和Debian wheezy(7.0).一些提示可能仍然适用,但有些可能不适用.
默认情况下,ext3文件系统每五秒将元数据更改写入磁盘.这可以通过使用commit = N参数挂载根文件系统来增加,该参数告诉内核将写入延迟到每N秒.
内核为每个已读取的文件写入新的atime,为每次读取生成一次写入.可以通过使用noatime选项安装文件系统来禁用此功能.上述两个都可以通过添加例如noatime,commit = 120,...到/ etc/fstab来完成.这也可以通过运行命令在已安装的文件系统上完成:
mount -o remount,noatime,commit = 120 /
系统将每天运行updatedb,这将创建系统上所有文件的数据库,以便与locate命令一起使用.这也会对文件系统造成一些压力,因此您可能希望通过添加来禁用它
退出0
早在/etc/cron.daily/find脚本中.
在记录一些新信息后,syslogd将在默认安装中直接将大量日志文件同步到磁盘.您可能希望更改/etc/syslog.conf,以便每个文件名以 - (减号)开头,这意味着写入不会立即同步(这会增加系统崩溃时某些日志消息丢失的风险).例如,一行如下:
kern.*/var/log/kern.log
将改为:
kern.* - /var/log/kern.log
您也可以通过将它们记录到/ dev/null来完全禁用某些类消息,有关详细信息,请参阅syslog.conf(5).
此外,syslogd喜欢每20分钟写一次 - MARK - 行来记录文件,以显示syslog仍在运行.可以通过更改/ etc/default/syslogd中的SYSLOGD来禁用它,以便它可以读取
SYSLOGD =" - m 0"
进行任何更改后,需要通过运行重新启动syslogd
/etc/init.d/syslogd restart
如果您在闪存设备上有交换分区或交换文件,您可能希望每隔一段时间将其移动到磁盘的不同部分,以确保磁盘的不同部分受到它可以生成的频繁写入的影响.对于交换文件,可以通过在删除旧交换文件之前创建新的交换文件来完成.
如果您在闪存设备上存储了交换分区或交换文件,则可以通过将/ proc/sys/vm/swappiness设置为零来确保尽可能少地使用它.
内核还有一个名为laptop_mode的设置,这使得它延迟写入磁盘(最初的目的是允许笔记本电脑磁盘在不使用时降速,因此名称)./ proc/sys/vm /下的许多文件控制它的工作原理:
/ proc/sys/vm/laptop_mode:读取后多少秒应该写出已更改的文件(这是基于读取将导致磁盘再次旋转的假设).
/ proc/sys/vm/dirty_writeback_centisecs:内核检查是否有"脏"(已更改)数据写入磁盘的频率(以厘秒为单位).
/ proc/sys/vm/dirty_expire_centisecs:在内核认为数据足够大以便写入磁盘之前,应该有多旧的"脏"数据.一般来说,将其设置为与上面的dirty_writeback_centisecs相同的值是个好主意.
/ proc/sys/vm/dirty_ratio:在生成数据的进程被强制写入之前,用于存储脏数据的最大内存量(以百分比表示).将此值设置为高值不应该是一个问题,因为如果系统内存不足,也会发生写入.
/ proc/sys/vm/dirty_background_ratio:允许停止向磁盘写入脏数据的较低内存量(以百分比表示).这应该比上面的dirty_ratio低很多,以允许内核一次写出脏数据块.
可以使用自定义init脚本(例如此示例脚本)来调整所有上述内核参数.将其存储到例如/etc/init.d/kernel-params,使其可执行
chmod a + x /etc/init.d/kernel-params
并确保它是通过运行执行的
update-rc.d kernel-params默认值
注意:大多数这些设置通过增加内存使用量来减少写入磁盘的次数.这增加了内存不足情况的风险(这可能会触发内核中可怕的OOM杀手).甚至在有可用空闲内存时也会发生这种情况(例如,当内核需要分配多个连续页面并且只有碎片化的可用页面可用时).
与任何调整一样,建议您密切关注可用内存量并调整调整(例如,通过使用不太激进的缓存并增加swappiness),具体取决于您的工作负载. …
我正在尝试在 Debian 中使用 MySQL C 连接器开发一个程序。
当程序尝试使用以下方法进行连接时:
if (!mysql_real_connect(connection, "127.0.0.1", "dbuser", "dbpassword", "dbname", 3306, NULL, 0)) {
printf("Connection error : %s\n", mysql_error(connection));
exit(1);
}
Run Code Online (Sandbox Code Playgroud)
我刚回来“无法创建 TCP/IP 套接字 (24)”,如果我尝试:
if (!mysql_real_connect(connection, "localhost", "dbuser", "dbpassword", "dbname", 0, NULL, 0)) {
printf("Connection error : %s\n", mysql_error(connection));
exit(1);
}
Run Code Online (Sandbox Code Playgroud)
我回复“无法创建 Unix 套接字 (24)
我在谷歌上搜索过,并在这里查看,人们似乎指出“打开的文件太多”。现在,我不确定这对连接到底意味着什么,因为我在与 MySQL 服务器连接良好的同一主机上的网络服务器上运行 php,并且(用于调试)创建了一个 java 应用程序来连接和发送返回版本号,这也有效。所以我不认为服务器连接太多。
有关打开文件的 ulimit 设置:(-n) 1024
我不明白为什么那些可以连接 find 到本地主机服务器,但 c 连接器不能。
有人可以帮忙吗?
我尝试使用我的Raspberry Pi 3和最新的Raspbian创建我自己的通用遥控器.在构建了小接收器和发射器(我遵循的教程)并将所有内容连接起来后,我在尝试接收IR时收到了此消息.
pi@raspberrypi:~ $ sudo modprobe lirc_rpi
pi@raspberrypi:~ $ sudo kill $(pidof lircd)
pi@raspberrypi:~ $ mode2 -d /dev/lirc0
Using driver devinput on device /dev/lirc0
Trying device: /dev/lirc0
Using device: /dev/lirc0
Partial read 8 bytes on /dev/lirc0pi@raspberrypi:~ $
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
我创建了一个java应用程序并将其打包到Windows平台上的jar文件中.现在我想在Debian Linux上部署该jar文件.
相同的jar文件是否适用于Debian Linux?
在Windows中用于从命令提示符执行jar文件的命令是否与Debain Linux相同?
即
java -jvm "MyJar.jar"
Run Code Online (Sandbox Code Playgroud)
以上命令是否适用于Debian Linux?
这似乎是一个非常基本的问题,但我无法更改 Linux 中的文件权限。
我是root用户,如果我在已安装的linux的文件系统中复制相同的文件,我可以更改文件权限。我无法更改保留在其他分区上的文件/文件夹的权限。
请给我一个术语,至少告诉我如何开始调试,我也没有看到任何错误。没有设置粘性位。请提供我可以遵循的步骤来调试此问题,以帮助我。
Filesystem Size Used Avail Use% Mounted on
rootfs 46G 22G 22G 50% /
udev 10M 0 10M 0% /dev
tmpfs 393M 1.9M 391M 1% /run
/dev/disk/by-uuid/49c0f59c-9bb3-4755-8c1f-06da6159865e 46G 22G 22G 50% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 786M 944K 785M 1% /run/shm
/dev/sda2 46G 43G 1.3G 98% /home
/dev/sda6 278G 122G 157G 44% /media/056AFEAB51156F3F___
/dev/sda3 92G 16G 72G 18% /media/3a7cb05d-b822-4f3e-a330-da91013b605c_
Run Code Online (Sandbox Code Playgroud)
drwx------ 1 prasenjit prasenjit 0 Oct 21 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在x64 Debian上编译这个x86汇编代码:
BITS 32
%include 'training.s'
global main
extern exit
; ===============================================
section .text
main:
; The program begins here:
call read_hex
mov edx,eax
call read_hex
add eax,edx
add eax,eax
inc eax
call print_eax
; Exit the process:
push 0
call exit
Run Code Online (Sandbox Code Playgroud)
我收到这些错误:
~$nasm -f elf -g 0_strange_calc.asm && ld -o 0_strange_calc 0_strange_calc.o
ld: i386 architecture of input file `0_strange_calc.o' is incompatible with i386:x86-64 output
ld: warning: cannot find entry symbol _start; defaulting to 00000000004000b0
0_strange_calc.o:training.s:25: undefined reference …Run Code Online (Sandbox Code Playgroud) 我想在Ubuntu 18.04上安装Ansible 2.3.1.0。
当我运行时apt-get install ansible,它将安装版本2.5.3。
以下是的输出apt-cache policy ansible。之后,我删除了安装。
ansible:
Installed: (none)
Candidate: 2.5.3-1ppa~bionic
Version table:
2.5.3-1ppa~bionic 500
500 http://ppa.launchpad.net/ansible/ansible/ubuntu bionic/main amd64 Packages
500 http://ppa.launchpad.net/ansible/ansible/ubuntu bionic/main i386 Packages
2.5.1+dfsg-1 500
500 http://us.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
500 http://us.archive.ubuntu.com/ubuntu bionic/universe i386 Packages
Run Code Online (Sandbox Code Playgroud) 在Xubuntu上创建debian软件包从哪里安装debchange/dch?
我正在尝试使用 systemd 脚本构建 debian 软件包,但我并不真正理解最好的方法。
我的第一个问题是,我应该使用该--with=systemd选项(并覆盖dh_systemd_enableand )还是与该选项一起dh_systemd_start使用就足够了?因为两者似乎都在做同样的事情。dh_installinit--name
我正在尝试在 linux (debian/ubuntu) 上安装最新的 git
我试过
sudo apt-add-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git
Run Code Online (Sandbox Code Playgroud)
它让我
git --version
git version 2.7.4
Run Code Online (Sandbox Code Playgroud)
但根据这篇文章:/sf/answers/26071/93198 存在更新的版本。