草庐IT

Linux 下的 /proc 目录介绍

睿思达DBA_WGX 2023-05-10 原文

Linux 下的 /proc 目录介绍

目录

在 Linux 系统中,/proc 目录是一个位于内存中的伪文件系统。该目录下保存的并不是真正的文件和目录,而是一些【运行时】的信息,如 CPU 信息、负载信息、系统内存信息、磁盘 IO 信息等。

Linux 内核提供了一种通过 proc 文件系统,在运行时访问内核内部的数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。通过ll -h 命令查看该目录下的文件,发现几乎所有的文件大小都是 0。但可以通过 vim、cat、less、more 等命令查看文件的内容。

/proc目录是内核提供给我们的查询中心,通过查询该目录下的文件内容,可以获取到有关系统硬件及当前运行进程的信息。

用户和应用程序可以通过 proc 得到系统的信息,并可以改变内核的某些参数。由于进程等系统信息是动态改变的,所以用户或应用程序读取 proc 文件时,proc 文件系统是动态从系统内核读出所需信息并提交的。

/proc 目录下的文件或子目录取决于系统的内核配置和装载的模块。其中 sys 目录是可写的,可以通过它来访问或修改内核参数;而 net 和 scsi 则依赖于内核配置。如果系统不支持 scsi,则 scsi 目录不存在。还有一些以数字命名的目录,它们是进程目录。当前运行的每一个进程都有对应的一个目录在 /proc 下,以进程的 PID 号为目录名,它们是读取进程信息的接口。self 目录则是读取进程本身的信息接口,是一个link。

/proc 目录的内容如下图所示:

1、/proc 目录包含的文件及其作用

/proc/cmdline         # 保存操作系统的启动参数
/proc/cpuinfo         # 保存CPU的相关信息。对应lscpu命令。
/proc/devices         # 系统已经加载的所有块设备和字符设备的信息。
/proc/diskstats       # 统计磁盘设备的I/O信息。
/proc/filesystems     # 保存当前系统支持的文件系统。
/proc/kcore	          # 物理内存的镜像。该文件大小是已使用的物理内存加上4K。
/proc/loadavg	      # 保存最近1分钟、5分钟、15分钟的系统平均负载。
/proc/meminfo	      # 保存当前内存使用情况。对应free命令
/proc/mounts -> self/mounts	# 系统中当前挂载的所有文件系统。mount命令。
                            # mounts文件是链接到self/mounts。
/proc/partitions      # 每个分区的主设备号(major)、次设备号(minor)、包含的块(block)数目。
/proc/uptime          # 系统自上次启动后的运行时间。
/proc/version         # 当前系统的内核版本号
/proc/vmstat          # 当前系统虚拟内存的统计数据

2、/proc 目录包含的子目录及其内容

(1)/proc/bus

系统总线(Bus)信息,例如 pci、usb 等,目录内容如下:

[root@localhost proc]# ll /proc/bus
总用量 0
dr-xr-xr-x. 2 root root 0 1112 11:41 input
dr-xr-xr-x. 4 root root 0 1112 11:41 pci
[root@localhost proc]# ll /proc/bus/input
总用量 0
-r--r--r--. 1 root root 0 1112 11:42 devices
-r--r--r--. 1 root root 0 1112 11:42 handlers
[root@localhost proc]# ll /proc/bus/pci
总用量 0
dr-xr-xr-x. 2 root root 0 1112 11:42 00
dr-xr-xr-x. 2 root root 0 1112 11:42 02
-r--r--r--. 1 root root 0 1112 11:42 devices

(2)/proc/driver

驱动信息,目录内容如下:

[root@localhost proc]# ll /proc/driver
总用量 0
-r--r--r--. 1 root root 0 1112 11:43 nvram
-r--r--r--. 1 root root 0 1112 11:43 rtc

(3)/proc/fs

文件系统信息,目录内容如下:

[root@localhost proc]# ll /proc/fs
总用量 0
dr-xr-xr-x. 2 root root 0 1112 11:45 nfsd
dr-xr-xr-x. 2 root root 0 1112 11:45 xfs
[root@localhost proc]# ll /proc/fs/nfsd
总用量 0
[root@localhost proc]# ll /proc/fs/xfs
总用量 0
lrwxrwxrwx. 1 root root 23 1112 11:45 stat -> /sys/fs/xfs/stats/stats
-r--r--r--. 1 root root  0 1112 11:45 xqm
-r--r--r--. 1 root root  0 1112 11:45 xqmstat

(4)设备信息

# 网卡设备信息
[root@localhost proc]# ll /proc/net
lrwxrwxrwx. 1 root root 8 1112 11:47 /proc/net -> self/net
# 网络流量统计。接收、发送、发送时的错误和冲突情况。
[root@localhost proc]# cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
lo:   18632     212    0    0    0     0          0         0    18632     212    0    0    0     0       0          0
ens33: 266978316  271249    0    0    0     0          0         0  7110723   75371    0    0    0     0       0          0
# scsi设备信息
[root@localhost proc]# ll /proc/scsi
总用量 0
-r--r--r--. 1 root root 0 1112 11:48 device_info
dr-xr-xr-x. 2 root root 0 1112 11:48 mptspi
-r--r--r--. 1 root root 0 1112 11:48 scsi
dr-xr-xr-x. 2 root root 0 1112 11:48 sg
#tty设备信息
[root@localhost proc]# ll /proc/tty 
总用量 0
dr-x------. 2 root root 0 1112 11:48 driver
-r--r--r--. 1 root root 0 1112 11:48 drivers
dr-xr-xr-x. 2 root root 0 1112 11:48 ldisc
-r--r--r--. 1 root root 0 1112 11:48 ldiscs

(5)进程目录

/proc 目录下有很多以数字命名的目录,这些目录与进程的 pid 相对应。通过这些目录,可以查看进程相关的信息。比如,mysql 对应的进程号为 25787:

[root@localhost proc]# ps -ef |grep mysql
mysql     25787      1  0 11月09 ?      00:02:27 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root      27552  26884  0 12:00 pts/0    00:00:00 grep --color=auto mysql

进程号为 25787 对应的目录内容如下:

[root@localhost proc]# cd 25787
[root@localhost 25787]# pwd
/proc/25787
[root@localhost 25787]# ll
总用量 0
dr-xr-xr-x.  2 mysql mysql 0 1112 12:02 attr
-rw-r--r--.  1 mysql mysql 0 1112 12:02 autogroup
-r--------.  1 mysql mysql 0 1112 12:02 auxv
-r--r--r--.  1 mysql mysql 0 1112 12:02 cgroup
--w-------.  1 mysql mysql 0 1112 12:02 clear_refs
-r--r--r--.  1 mysql mysql 0 1112 12:00 cmdline
-rw-r--r--.  1 mysql mysql 0 1112 12:02 comm
-rw-r--r--.  1 mysql mysql 0 1112 12:02 coredump_filter
-r--r--r--.  1 mysql mysql 0 1112 12:02 cpuset
lrwxrwxrwx.  1 mysql mysql 0 1112 12:02 cwd -> /var/lib/mysql
-r--------.  1 mysql mysql 0 1112 12:02 environ
lrwxrwxrwx.  1 mysql mysql 0 1112 12:02 exe -> /usr/sbin/mysqld
dr-x------.  2 mysql mysql 0 1112 12:02 fd
dr-x------.  2 mysql mysql 0 1112 12:02 fdinfo
-rw-r--r--.  1 mysql mysql 0 1112 12:02 gid_map
-r--------.  1 mysql mysql 0 1112 12:02 io
-r--r--r--.  1 mysql mysql 0 1112 12:02 limits
-rw-r--r--.  1 mysql mysql 0 1112 12:02 loginuid
dr-x------.  2 mysql mysql 0 1112 12:02 map_files
-r--r--r--.  1 mysql mysql 0 1112 12:02 maps
-rw-------.  1 mysql mysql 0 1112 12:02 mem
-r--r--r--.  1 mysql mysql 0 1112 12:02 mountinfo
-r--r--r--.  1 mysql mysql 0 1112 12:02 mounts
-r--------.  1 mysql mysql 0 1112 12:02 mountstats
dr-xr-xr-x.  5 mysql mysql 0 1112 12:02 net
dr-x--x--x.  2 mysql mysql 0 1112 12:02 ns
-r--r--r--.  1 mysql mysql 0 1112 12:02 numa_maps
-rw-r--r--.  1 mysql mysql 0 1112 12:02 oom_adj
-r--r--r--.  1 mysql mysql 0 1112 12:02 oom_score
-rw-r--r--.  1 mysql mysql 0 1112 12:02 oom_score_adj
-r--r--r--.  1 mysql mysql 0 1112 12:02 pagemap
-r--r--r--.  1 mysql mysql 0 1112 12:02 personality
-rw-r--r--.  1 mysql mysql 0 1112 12:02 projid_map
lrwxrwxrwx.  1 mysql mysql 0 1112 12:02 root -> /
-rw-r--r--.  1 mysql mysql 0 1112 12:02 sched
-r--r--r--.  1 mysql mysql 0 1112 12:02 schedstat
-r--r--r--.  1 mysql mysql 0 1112 12:02 sessionid
-rw-r--r--.  1 mysql mysql 0 1112 12:02 setgroups
-r--r--r--.  1 mysql mysql 0 1112 12:02 smaps
-r--r--r--.  1 mysql mysql 0 1112 12:02 stack
-r--r--r--.  1 mysql mysql 0 1031 19:53 stat
-r--r--r--.  1 mysql mysql 0 1112 12:02 statm
-r--r--r--.  1 mysql mysql 0 1112 12:00 status
-r--r--r--.  1 mysql mysql 0 1112 12:02 syscall
dr-xr-xr-x. 30 mysql mysql 0 1112 12:02 task
-r--r--r--.  1 mysql mysql 0 1112 12:02 timers
-rw-r--r--.  1 mysql mysql 0 1112 12:02 uid_map
-r--r--r--.  1 mysql mysql 0 1112 12:02 wchan

进程目录下的子目录与文件的含义如下:

cmdline  # 保存了当前进程的启动命令。
[root@localhost 25787]# cat cmdline
/usr/sbin/mysqld--daemonize--pid-file=/var/run/mysqld/mysqld.pid

cwd     # 链接到进程当前工作目录
lrwxrwxrwx.  1 mysql mysql 0 1112 12:02 cwd -> /var/lib/mysql

exe     # 指向启动进程的可执行文件
lrwxrwxrwx.  1 mysql mysql 0 1112 12:02 exe -> /usr/sbin/mysqld

environ  #包含与进程相关的环境变量
[root@localhost 25787]# cat environ
LANG=zh_CN.UTF-8PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/binHOME=/var/lib/mysqlLOGNAME=mysqlUSER=mysqlSHELL=/bin/false

fd    # fd目录包含了进程打开的每一个文件的文件描述符。这些描述符都指向实际文件。
[root@localhost 25787]# ll ./fd
总用量 0
lr-x------. 1 mysql mysql 64 1112 12:07 0 -> /dev/null
l-wx------. 1 mysql mysql 64 1112 12:07 1 -> /var/log/mysqld.log
lrwx------. 1 mysql mysql 64 1112 12:07 10 -> /var/lib/mysql/ibdata1
lrwx------. 1 mysql mysql 64 1112 12:07 11 -> /var/lib/mysql/ibtmp1
lrwx------. 1 mysql mysql 64 1112 12:07 12 -> /tmp/ibbdwaLR (deleted)
lrwx------. 1 mysql mysql 64 1112 12:07 13 -> /var/lib/mysql/mysql/servers.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 14 -> /var/lib/mysql/mysql/help_topic.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 15 -> /var/lib/mysql/mysql/help_relation.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 16 -> /var/lib/mysql/mysql/help_keyword.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 17 -> /var/lib/mysql/mysql/time_zone_name.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 18 -> /var/lib/mysql/mysql/time_zone.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 19 -> /var/lib/mysql/mysql/time_zone_transition.ibd
l-wx------. 1 mysql mysql 64 1112 12:07 2 -> /var/log/mysqld.log
lrwx------. 1 mysql mysql 64 1112 12:07 20 -> /var/lib/mysql/mysql/time_zone_transition_type.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 21 -> /var/lib/mysql/mysql/time_zone_leap_second.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 22 -> /var/lib/mysql/mysql/server_cost.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 23 -> /var/lib/mysql/mysql/engine_cost.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 24 -> /var/lib/mysql/sys/sys_config.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 25 -> /var/lib/mysql/mydb/t11.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 26 -> /var/lib/mysql/mysql/plugin.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 27 -> /var/lib/mysql/mysql/innodb_table_stats.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 28 -> /var/lib/mysql/mysql/innodb_index_stats.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 29 -> /var/lib/mysql/mysql/gtid_executed.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 3 -> /var/lib/mysql/ib_logfile0
lr-x------. 1 mysql mysql 64 1112 12:07 30 -> /dev/urandom
lrwx------. 1 mysql mysql 64 1112 12:07 31 -> socket:[65067]
lrwx------. 1 mysql mysql 64 1112 12:07 32 -> socket:[65068]
lrwx------. 1 mysql mysql 64 1112 12:07 33 -> /var/lib/mysql/mysql/user.MYI
lrwx------. 1 mysql mysql 64 1112 12:07 34 -> /var/lib/mysql/mysql/user.MYD
lrwx------. 1 mysql mysql 64 1112 12:07 35 -> /var/lib/mysql/mysql/db.MYI
lrwx------. 1 mysql mysql 64 1112 12:07 36 -> /var/lib/mysql/mysql/db.MYD
lrwx------. 1 mysql mysql 64 1112 12:07 37 -> /var/lib/mysql/mysql/proxies_priv.MYI
lrwx------. 1 mysql mysql 64 1112 12:07 38 -> /var/lib/mysql/mysql/proxies_priv.MYD
lrwx------. 1 mysql mysql 64 1112 12:07 39 -> /var/lib/mysql/mysql/tables_priv.MYI
lrwx------. 1 mysql mysql 64 1112 12:07 40 -> /var/lib/mysql/mysql/tables_priv.MYD
lrwx------. 1 mysql mysql 64 1112 12:07 41 -> /var/lib/mysql/mysql/columns_priv.MYI
lrwx------. 1 mysql mysql 64 1112 12:07 42 -> /var/lib/mysql/mysql/columns_priv.MYD
lrwx------. 1 mysql mysql 64 1112 12:07 43 -> /var/lib/mysql/mysql/procs_priv.MYI
lrwx------. 1 mysql mysql 64 1112 12:07 44 -> /var/lib/mysql/mysql/procs_priv.MYD
lrwx------. 1 mysql mysql 64 1112 12:07 45 -> /var/lib/mysql/mysql/event.MYI
lrwx------. 1 mysql mysql 64 1112 12:07 46 -> /var/lib/mysql/mysql/event.MYD
lrwx------. 1 mysql mysql 64 1112 12:07 47 -> /var/lib/mysql/mysql/proc.MYI
lrwx------. 1 mysql mysql 64 1112 12:07 48 -> /var/lib/mysql/mysql/proc.MYD
lrwx------. 1 mysql mysql 64 1112 12:07 49 -> /var/lib/mysql/mysql/event.MYD
lrwx------. 1 mysql mysql 64 1112 12:07 5 -> /tmp/ibFDWuzF (deleted)
lrwx------. 1 mysql mysql 64 1112 12:07 50 -> /var/lib/mysql/mysql/event.MYD
lrwx------. 1 mysql mysql 64 1112 12:07 51 -> /var/lib/mysql/mysql/event.MYD
lrwx------. 1 mysql mysql 64 1112 12:07 52 -> /var/lib/mysql/dzh/tb_department.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 53 -> /var/lib/mysql/dzh/tb_large_group.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 54 -> /var/lib/mysql/dzh/tb_team.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 55 -> /var/lib/mysql/dzh/tb_employee.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 56 -> /var/lib/mysql/dzh/tb_competing_goods_classification.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 57 -> /var/lib/mysql/dzh/tb_competing_goods.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 58 -> /var/lib/mysql/dzh/tb_brand.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 59 -> /var/lib/mysql/dzh/tb_product.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 6 -> /tmp/ibsmaK4i (deleted)
lrwx------. 1 mysql mysql 64 1112 12:07 60 -> /var/lib/mysql/dzh/tb_goods.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 61 -> /var/lib/mysql/dzh/tb_packaged.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 62 -> /var/lib/mysql/dzh/tb_product_packaged_relation.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 63 -> /var/lib/mysql/dzh/tb_platform.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 64 -> /var/lib/mysql/dzh/tb_store.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 65 -> /var/lib/mysql/mysql/proc.MYD
lrwx------. 1 mysql mysql 64 1112 12:07 66 -> /var/lib/mysql/mysql/proc.MYD
lrwx------. 1 mysql mysql 64 1112 12:07 67 -> /var/lib/mysql/dzh/tb_goods_sales_info.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 68 -> /var/lib/mysql/dzh/tb_packaged_sales_info.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 69 -> /var/lib/mysql/dzh_example/goods.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 7 -> /tmp/ibBGQ0zW (deleted)
lrwx------. 1 mysql mysql 64 1112 12:07 70 -> /var/lib/mysql/dzh_example/team.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 71 -> /var/lib/mysql/dzh_example/product.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 72 -> /var/lib/mysql/dzh_example/goods_product.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 73 -> /var/lib/mysql/dzh_example/not_package_sales.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 74 -> /var/lib/mysql/dzh_example/package_sales.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 75 -> /var/lib/mysql/dzh_example/package_product_sales.ibd
lrwx------. 1 mysql mysql 64 1112 12:07 8 -> /tmp/ib4oxxSd (deleted)
lrwx------. 1 mysql mysql 64 1112 12:07 9 -> /var/lib/mysql/ib_logfile1

task   # task目录下包含了当前进程的每一个线程的相关信息,与进程运行时的相关文件一样。
[root@localhost 25787]# ll ./task
总用量 0
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25787
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25788
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25789
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25790
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25791
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25792
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25793
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25794
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25795
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25796
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25797
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25798
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25799
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25801
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25802
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25803
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25804
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25805
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25806
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25807
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25808
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25809
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25810
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25811
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25812
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25813
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25814
dr-xr-xr-x. 6 mysql mysql 0 1112 12:09 25816

limits  # 保存了进程使用资源的限制信息,软限制、硬限制及单位。
[root@localhost 25787]# cat limits
Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        0                    unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             7208                 7208                 processes 
Max open files            5000                 5000                 files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       7208                 7208                 signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us        

有关Linux 下的 /proc 目录介绍的更多相关文章

  1. ruby-on-rails - active_admin 目录中的常量警告重新声明 - 2

    我正在使用active_admin,我在Rails3应用程序的应用程序中有一个目录管理,其中包含模型和页面的声明。时不时地我也有一个类,当那个类有一个常量时,就像这样:classFooBAR="bar"end然后,我在每个必须在我的Rails应用程序中重新加载一些代码的请求中收到此警告:/Users/pupeno/helloworld/app/admin/billing.rb:12:warning:alreadyinitializedconstantBAR知道发生了什么以及如何避免这些警告吗? 最佳答案 在纯Ruby中:classA

  2. ruby-on-rails - 如何在 Gem 中获取 Rails 应用程序的根目录 - 2

    是否可以在应用程序中包含的gem代码中知道应用程序的Rails文件系统根目录?这是gem来源的示例:moduleMyGemdefself.included(base)putsRails.root#returnnilendendActionController::Base.send:include,MyGem谢谢,抱歉我的英语不好 最佳答案 我发现解决类似问题的解决方案是使用railtie初始化程序包含我的模块。所以,在你的/lib/mygem/railtie.rbmoduleMyGemclassRailtie使用此代码,您的模块将在

  3. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  4. ruby-on-rails - 没有这样的文件或目录 - 用 Mini Magick 识别 - 2

    在我让另一个人重做我的前端UI之前,我的Rails应用程序运行平稳。我已经尝试解决此错误3天了。这是错误:Nosuchfileordirectory-identifyExtractedsource(aroundline#59):575859606162@post=Post.find(params[:id])authorize@postif@post.update_attributes(post_params)flash[:notice]="Postwasupdated."redirect_to[@topic,@post]else{"utf8"=>"✓","_method"=>"patc

  5. ruby - Sinatra 找不到 View 目录 - 2

    我正在尝试以一种更类似于普通RubyGem结构的方式构建我的Sinatra应用程序。我有以下文件树:.├──app.rb├──config.ru├──Gemfile├──Gemfile.lock├──helpers│  ├──dbconfig.rb│  ├──functions.rb│  └──init.rb├──hidden│  └──Rakefile├──lib│  ├──admin.rb│  ├──api.rb│  ├──indexer.rb│  ├──init.rb│  └──magnet.rb├──models│  ├──init.rb│  ├──invite.rb│  ├─

  6. ruby - 如何在 ruby​​ 中复制目录结构,不包括某些文件扩展名 - 2

    我想编写一个ruby​​脚本来递归复制目录结构,但排除某些文件类型。因此,给定以下目录结构:folder1folder2file1.txtfile2.txtfile3.csfile4.htmlfolder2folder3file4.dll我想复制这个结构,但不包含.txt和.cs文件。因此,生成的目录结构应如下所示:folder1folder2file4.htmlfolder2folder3file4.dll 最佳答案 您可以使用查找模块。这是一个代码片段:require"find"ignored_extensions=[".cs"

  7. ruby-on-rails - 在 Rails 中需要整个目录树的好方法是什么? - 2

    我正在使用Rails3.2.2并希望递归加载某个目录中的所有代码。例如:[Railsroot]/lib/my_lib/my_lib.rb[Railsroot]/lib/my_lib/subdir/support_file_00.rb[Railsroot]/lib/my_lib/subdir/support_file_01.rb...基于谷歌搜索,我试过:config.autoload_paths+=["#{Rails.root.to_s}/lib/my_lib/**"]config.autoload_paths+=["#{Rails.root.to_s}/lib/my_lib/**/"

  8. ruby - 使用 File.open 从 ruby​​ 中的目录打开文件 - 2

    我是Ruby的新手,我正在尝试以如下方式打开文件:#!/usr/bin/envrubydata_file='~/path/to/file.txt'file=File.open(data_file,'r')但是我得到“没有这样的文件或目录”(该文件确实存在于该目录中)。如果我将该文件路径作为命令行参数,它会起作用,例如:#!/usr/bin/envrubyfile=File.open(ARGV[0],'r')然后从命令行运行,如:rubyscript.cgi~/path/to/file.txt关于如何让它以第一种方式工作的任何想法? 最佳答案

  9. ruby-on-rails - 使用 rspec 测试自定义验证器。为什么我会得到 Proc? - 2

    如标题所示,我正在尝试使用Rspec测试自定义验证器。我得到一个错误,我不明白为什么......如果你能阐明一些问题,我将非常感激。我们开始吧:验证者规范require'spec_helper'describeGraphDateValidatordoit"shouldnotvalidateactivitywithemptystarttime"doexpect{Graph.new({start_time:''}).valid?}.toeq(false)endend如果我打印Graph.new({start_time:''}).valid?它会打印false然而,当它通过规范时,它返回一个

  10. ruby - 在 Ruby + Chef 中检查现有目录失败 - 2

    这是我在ChefRecipe中的一blockRuby:#ifdatadirdoesn'texist,moveoverthedefaultoneif!File.exist?("/vol/postgres/data")execute"mv/var/lib/postgresql/9.1/main/vol/postgres/data"end结果是:Executingmv/var/lib/postgresql/9.1/main/vol/postgres/datamv:inter-devicemovefailed:`/var/lib/postgresql/9.1/main'to`/vol/post

随机推荐